目前我正在使用DLL库来获取自定义对象列表。
这一切都很棒,因为能够在其他项目中使用它。
但是我想要一个下拉框,它是一个DB表的查找,有3个选项,(高,中,低),这不是唯一一个问题。
获取此类信息有什么简短方法吗?
在ROR中,您可以将SQL字符串调用到数据库并获取列表,只需一行代码.....
所以我想像:
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=MYPC\WEB;Initial Catalog=WEBSQL;User ID=sa;Password=password;
答案 0 :(得分:1)
您可以使用WebMatrix.Data中的Database
class:
var items = Database.Open(...).Query("SELECT * FROM Priority");
但是,从长远来看,使用Entity Framework将更易于维护。
答案 1 :(得分:1)
如果要访问数据库表以获取几行,您可以选择以下几种方法:
我认为最后一个选项最容易。您的代码看起来像这样:
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查询,打开连接,构建命令,然后通过返回的行读取。
答案 2 :(得分:1)
最快的解决方案:
Priority
表(并保存)。(new MyDataContext()).Priorities
。答案 3 :(得分:1)
Microsoft Enterprise Library具有“数据访问应用程序块”,可以非常轻松地连接数据。这些信息可以在http://msdn.microsoft.com/en-us/library/ff664408(v=PandP.50).aspx
找到您可以使用此代码(来自http://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();
答案 4 :(得分:1)
您可以使用最接近您所寻找的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);