目前我正在使用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查询,打开连接,构建命令,然后读取返回的行。
最快的解决方案:
- 创建一个新的LINQ to SQL模型(并打开它)。
- 将
Priority
表拖到模型上(并保存)。 - 像这样查询模型:
(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();