在我的c#代码中为SqlCommand替换SqlDataAdapter

本文关键字:SqlCommand 替换 SqlDataAdapter 我的 代码 | 更新日期: 2023-09-27 18:09:34

我的代码是构造从数据库中读取名为(dg)的datagridView中的数据。

它实际上与SqlDataAdapter一起工作得很好。

首先是一个好主意,改变我的SqlDataAdapter为SqlCommand ?

如果是

我想用这个来改变我的SqlDataAdapter.

//SqlCommand cmd = new SqlCommand("Command String", con);
//SqlDataReader readdata;

代码
SqlConnection con = new SqlConnection(dc.Con);
SqlDataAdapter da = new SqlDataAdapter();
con.Open();
da.SelectCommand = new SqlCommand("SELECT * FROM tblContacts", con);
DataTable dt = new DataTable();
da.Fill(dt);
con.Close();
dg.DataSource = dt;

在我的c#代码中为SqlCommand替换SqlDataAdapter

当我需要对控件进行数据绑定时,我通常使用DataAdapter进行数据访问。在这些情况下,它非常方便和高效。否则,我直接使用Command对象。就性能而言,我倾向于同意w/punzki。这两者之间应该没有太大的区别。

http://msforums.ph/forums/p/9057/9057.aspx

实际上,据我所知,SqlDataAdapter使用SqlDataReader来检索记录。所以当你要从后端检索数据时,使用SQLDataReader总是好的。但是,如果您要检索数据,然后稍后更新(插入、更新、删除)数据,那么最好使用SqlDataAdapter。我认为这样效率更高。

http://msforums.ph/forums/t/29256.aspx

对性能有影响。

SqlDataReader无疑比SqlDataAdapter更快,因为DataReader以仅转发的方式读取数据,并且您可以获得返回给您的特定类型的值,例如字符串或int等。然而SqlDataAdapter,它将填补数据表或数据集将记录它找到你的select语句,带着正确的值类型的列和在内存中数据库断开连接表示,理想和更容易使用如果你要显示大量的记录来绑定源,与SqlDataReader一样,是不可能的,但只获得一个值指定每一行一列。

SqlDataAdapter还允许您更新,删除或插入行到数据集/数据表,这是一个优势,并将执行适当的命令,如果你实现它正确,基于如何在数据集/数据表中修改行。

与在SqlDataReader上快速读取相比,SqlDataAdapter是昂贵的,并且有更多的优势,但完全取决于您的解决方案和您的需求。

你说你要给很多的记录,而那都是很好,这将是更好的性能和内存使用只获得记录,你需要显示和SqlDataAdapter是适合这也但是你需要选择记录,是你最有可能的显示给用户,通过输入搜索条件,或者通过分页。

http://social.msdn.microsoft.com/forums/en - us/adodotnetdataproviders/thread/c2d762fd f4a0 - 4875 - 8 bb8 - 42 - f7480e97c8/