Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据从SQL检索到类中_C#_Sql - Fatal编程技术网

C# 将数据从SQL检索到类中

C# 将数据从SQL检索到类中,c#,sql,C#,Sql,假设我的SQL数据库包含一个名为“Customer”的表。此客户有一个ID、一个名字、一个姓氏和一个图像字节[] 我想要的是客户端上的一个类型类,它有一个int、两个字符串和一个byte[]。然后将每个记录读入其中的每个记录中 我对C略知一二,但在使用C进行访问时,我还是有点新手,尽管我已经能够从远程服务器上提取记录。我只想在它们到达客户端后对它们进行排序 编辑:好吧,看来我对人们的喜好有点模糊,所以让我澄清一下。我知道如何创建一个类,并且我已经查阅了有关使用ADO.NET命令将SQL数据库中的

假设我的SQL数据库包含一个名为“Customer”的表。此客户有一个ID、一个名字、一个姓氏和一个图像字节[]

我想要的是客户端上的一个类型类,它有一个int、两个字符串和一个byte[]。然后将每个记录读入其中的每个记录中

我对C略知一二,但在使用C进行访问时,我还是有点新手,尽管我已经能够从远程服务器上提取记录。我只想在它们到达客户端后对它们进行排序

编辑:好吧,看来我对人们的喜好有点模糊,所以让我澄清一下。我知道如何创建一个类,并且我已经查阅了有关使用ADO.NET命令将SQL数据库中的数据导入C项目的详细信息

我想知道的是如何将SQL表中的信息镜像为C项目中的对象。例如,我从表中下载一条记录,它进入一个对象

之前我使用了Silverlight,它有一个EDMX模型和一个域服务类。如果有人熟悉这种行为,那基本上就是我要模仿的。我会使用它,但我面临的一个限制是,我仅限于使用应用程序端,而不是网站

谢谢。

看看关于为CLR映射数据类型的文章。 以下是客户的类定义:

public class Customer {
public int ID {get;private set;}
public string fName {get; set;}
public string lName {get; set;}
public byte[] image {get; set;}
}
您可能需要查看linq to SQL以了解排序位,其中有一个.OrderByf=>f.Name;您可以申请按数据集的顺序进行排序


需要更多的关于你想要什么的信息吗

您所说的是创建一个对象关系映射器,这个映射器有点过于宽泛,无法在这里用一个单一的答案完全回答

有一个关于如何编写一个的详细教程


但是,应注意的是,已有大量的.NET ORM工具,其中许多工具已在本网站的其他问题中列出,例如。

以下是一个关于如何使用数据读取器检索数据的简短示例:

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);
        }
    }
}

如果表列可为空,则在检索数据之前检查reader.IsDBNull。

您应该研究使用SqlConnection和SqlCommand并用所需信息填充数据表。

这个问题太广泛了。您试图做的是数据访问并将数据绑定到对象。我相信已经有很多关于这样做的信息了。你应该在谷歌上搜索Linq到Sql教程。你是在问如何从数据库获取数据还是如何创建类?+1是一个好的开始。我猜他只是不知道从哪里开始。把它分成几个小部分,我只能根据问题的内容来回答。希望这能让他开始。