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