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

ASP.NET MVC3:访问数据库并获取几行数据的最快方法是什么?,asp.net,asp.net-mvc,database,Asp.net,Asp.net Mvc,Database,目前我正在使用DLL库获取自定义对象的列表 这一切都很好,因为能够在其他项目中使用它 但是我想要一个下拉框,它是一个DB表的查找,有3个选项(高、中、低),这不是唯一一个出现问题的情况。 有什么捷径可以获取这些信息吗? 在ROR中,您可以直接调用SQL字符串到db并获取列表,只需一行代码 所以我想说: var mylist = sqldb.query("SELECT * FROM Priority"); 注:是的,以上内容完全是虚构的 理想情况下,我也不必设置任何模型。。。理想情况下,也不必附

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

这一切都很好,因为能够在其他项目中使用它

但是我想要一个下拉框,它是一个DB表的查找,有3个选项(高、中、低),这不是唯一一个出现问题的情况。

有什么捷径可以获取这些信息吗?

在ROR中,您可以直接调用SQL字符串到db并获取列表,只需一行代码

所以我想说:

var mylist = sqldb.query("SELECT * FROM Priority");
注:是的,以上内容完全是虚构的

理想情况下,我也不必设置任何模型。。。理想情况下,也不必附加DB,而是使用查询字符串-除非附加要容易得多,并且可以从配置文件自定义

更新: 下面是一个例子,我现在有以下内容,但上面写着
System.ArgumentException:keywordnotsupported:“initialcatalog”。

    using (var db = Database.OpenConnectionString(WebLite.Properties.Settings.Default.dbConnString))
    {
        var items = db.Query("SELECT * FROM TaskPriority");
    }
我的连接字符串:
Data Source=MYPC\WEB;初始目录=WEBSQL;用户ID=sa;密码=密码

您可以使用来自WebMatrix的。数据:

var items = Database.Open(...).Query("SELECT * FROM Priority");
但是,从长远来看,使用实体框架将更易于维护。

您可以使用来自WebMatrix的。数据:

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

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

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

  • Linq到Sql
  • 实体框架
  • 数据集/表格适配器
  • 使用自己的连接/命令创建原始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查询,打开连接,构建命令,然后读取返回的行。

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

  • Linq到Sql
  • 实体框架
  • 数据集/表格适配器
  • 使用自己的连接/命令创建原始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查询,打开连接,构建命令,然后读取返回的行。

最快的解决方案:

  • 创建一个新的LINQ到SQL模型(并打开它)
  • 拖动模型上的
    Priority
    表(并保存它)
  • 像这样查询模型:
    (new MyDataContext())。优先级
  • 最快的解决方案:

  • 创建一个新的LINQ到SQL模型(并打开它)
  • 拖动模型上的
    Priority
    表(并保存它)
  • 像这样查询模型:
    (new MyDataContext())。优先级

  • Microsoft Enterprise Library具有“数据访问应用程序块”,使数据连接极其容易。信息可以在这里找到

    您可以使用此代码(从)创建连接并获取数据


    Microsoft Enterprise Library具有“数据访问应用程序块”,使数据连接极其容易。信息可以在这里找到

    您可以使用此代码(从)创建连接并获取数据

    你可以使用或可能听起来最接近你要找的东西。 从他们的示例页面中窃取:

       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);
    
    公共级狗
    {
    公共整数{get;set;}
    公共Guid Id{get;set;}
    公共字符串名称{get;set;}
    公共浮动?权重{get;set;}
    public int IgnoredProperty{get{return 1;}
    }            
    var guid=guid.NewGuid();
    var dog=connection.Query(“select Age=@Age,Id=@Id”,new{Age=(int?)null,Id=guid});
    狗计数
    .IsEqualTo(1);
    狗的第一年龄
    .IsNull();
    dog.First().Id
    .IsEqualTo(guid);
    
    您可以使用或听起来最接近您所寻找的内容。 从他们的示例页面中窃取:

       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);
    
    公共级狗
    {
    公共整数{get;set;}
    公共Guid Id{get;set;}
    公共字符串名称{get;set;}
    公共浮动?权重{get;set;}
    public int IgnoredProperty{get{return 1;}
    }            
    var guid=guid.NewGuid();
    var dog=connection.Query(“select Age=@Age,Id=@Id”,new{Age=(int?)null,Id=guid});
    狗计数
    .IsEqualTo(1);
    狗的第一年龄
    .IsNull();
    dog.First().Id
    .IsEqualTo(guid);
    

    您想要快速且可靠还是可靠且可维护?@jrummell:每个人都想要快速且可维护,但最终都会以肮脏而可靠告终。您不想使用实体框架或LINQ to SQL有什么原因吗?在EF中,你可以先做一个数据项目,然后让你的quick and dirty models.MVC。我只是想要一些代码非常简单的东西。你想要快速和脏的还是可靠和可维护的?@jrummell:每个人都想要快速和可维护的,但最终都是脏和可靠的。你不想使用实体框架或LINQ to SQL有什么原因吗?在EF中,你可以先做一个数据项目,然后让你的quick and dirty models.MVC。我只想让代码更简洁,这就是我目前所做的,在while阅读器循环中,我填充了一个自定义类列表。但是谢谢。在研究其他方法时,您和其他人建议这就是我目前所做的,在while reader循环中,我填充了一个自定义类列表。但是谢谢。去研究其他的方法,你和其他人建议,这会结束它之后?i、 e.否maintanceYes,尽管您应该将
    数据库
    放在
    using
    块中。您也可以将其与LINQ一起使用。我将我的连接字符串放在括号中,它只是说找不到连接字符串“mystring”:@@末日骑士:将连接字符串放入
    Web.config
    并传递名称。或者只需调用
    OpenConnectionString
    。请参阅文档。这将