ASP.访问数据库并获取几行数据的最快方法是什么?



目前我正在使用DLL库来获取自定义对象列表。

这很好,因为可以在其他项目中使用它。

但是我想要一个下拉框,这是一个数据库表的查找,字面上有3个选项,(高,中,低),这不是唯一的情况下,这是一个问题。

是否有任何简短的方式获得这样的信息?

在ROR中,您可以直接调用SQL String到数据库并获得列表,只需一行代码.....

所以我想这样写:

var mylist = sqldb.query("SELECT * FROM Priority");

注意:是的,以上是完全编造的。

理想情况下,我也不需要建立任何模型…理想情况下也不必附加数据库,而是使用查询字符串-除非附加要容易得多,并且可以从配置文件中进行定制。

更新:下面是一个例子,我现在有以下内容,但它说的是System.ArgumentException: Keyword not supported: 'initial catalog'.

    using (var db = Database.OpenConnectionString(WebLite.Properties.Settings.Default.dbConnString))
    {
        var items = db.Query("SELECT * FROM TaskPriority");
    }

我的连接字符串:Data Source=MYPCWEB;Initial Catalog=WEBSQL;User ID=sa;Password=password;

您可以使用WebMatrix中的Database类。数据:

var items = Database.Open(...).Query("SELECT * FROM Priority");

但是,从长远来看,使用实体框架将更易于维护。

如果您想访问数据库表以获取几行,您有几个选项:

    Linq to Sql
  • 实体框架
  • DataSets/TableAdapter
  • 原始sql与您自己的连接/命令。

我认为最后一个选项是最简单的。你的代码看起来像这样:

 string queryString = 
        "SELECT OrderID, CustomerID FROM dbo.Orders;";
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(
            queryString, connection);
        connection.Open();
        SqlDataReader reader = command.ExecuteReader();
        try
        {
            while (reader.Read())
            {
                Console.WriteLine(String.Format("{0}, {1}",
                    reader[0], reader[1]));
            }
        }
        finally
        {
            // Always call Close when done reading.
            reader.Close();
        }
    }

定义到数据库的连接字符串并将其传入。然后构建sql查询,打开连接,构建命令,然后读取返回的行。

最快的解决方案:

  1. 创建一个新的LINQ to SQL模型(并打开它)。
  2. Priority表拖到模型上(并保存)。
  3. 像这样查询模型:(new MyDataContext()).Priorities .

你可以使用NHibernate或者也许Dapper听起来最接近你正在寻找的。从他们的示例页面偷来的:

   public class Dog
{
    public int? Age { get; set; }
    public Guid Id { get; set; }
    public string Name { get; set; }
    public float? Weight { get; set; }
    public int IgnoredProperty { get { return 1; } }
}            
var guid = Guid.NewGuid();
var dog = connection.Query<Dog>("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid });
dog.Count()
    .IsEqualTo(1);
dog.First().Age
    .IsNull();
dog.First().Id
    .IsEqualTo(guid);

微软企业库有"数据访问应用程序块",使连接到数据非常容易。信息可在这里找到http://msdn.microsoft.com/en-us/library/ff664408(v=PandP.50).aspx

您可以使用以下代码(从https://web.archive.org/web/20211020111631/https://www.4guysfromrolla.com/articles/070203-1.aspx)创建连接并获取数据

string strSql = "select * from products where categoryid = 1";
string strConnTxt = "Server=(local);Database=Northwind;Integrated Security=True;";
DataGrid4.DataSource = SqlHelper.ExecuteReader(strConnTxt, CommandType.Text, strSql);
DataGrid4.DataBind();

相关内容

  • 没有找到相关文章

最新更新