假设我的SQL数据库包含一个名为"Customer"的表.此客户具有ID,名字,姓氏和图像(byte[]).
我想要的是客户端上的类型(类),有int两个strings和一个byte[].然后将每个记录读入这些记录中的每一个.
我知道一点C#,但是在使用C#访问时我有点新手,虽然我已经能够从远程服务器下拉记录了.一旦他们到达客户端,我只想对它们进行排序.
编辑:好的,似乎我对人们的喜好有点模糊,所以让我澄清一下.我知道如何创建一个类,我已经查找了使用ADO.NET命令将数据从SQL数据库传输到C#项目的详细信息.
我想知道的是如何将SQL表中的信息镜像为我的C#项目中的对象.因此,例如,我从我的表中下载了一条记录,它进入了一个对象.
以前我使用过Silverlight,它有一个EDMX模型和一个域服务类.如果有人熟悉这种行为,那基本上就是我想要模仿的东西.我会使用它,但我面临的一个限制是我只能单独使用应用程序端,而不是网站.
谢谢.
这是一个简短的示例,说明如何使用数据读取器检索数据:
var customers = new List<Customer>();
string sql = "SELECT * FROM customers";
using (var cnn = new SqlConnection(
"Data Source=Your_Server;Initial Catalog=Your_Database;Integrated Security=SSPI;")) {
cnn.Open();
using (var cmd = new SqlCommand(sql, cnn))
using (SqlDataReader reader = cmd.ExecuteReader()) {
// Get ordinals from the customers table
int custIdOrdinal = reader.GetOrdinal("CustomerID");
int nameOrdinal = reader.GetOrdinal("Name");
int imageOrdinal = reader.GetOrdinal("Image");
while (reader.Read()) {
var customer = new Customer();
customer.CustomerID = reader.GetInt32(custIdOrdinal);
customer.Name = reader.IsDBNull(nameOrdinal)
? null
: reader.GetString(nameOrdinal);
if (!reader.IsDBNull(imageOrdinal)) {
var bytes = reader.GetSqlBytes(imageOrdinal);
customer.Image = bytes.Buffer;
}
customers.Add(customer);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果表列可以为空,则在检索数据之前检查reader.IsDBNull.