在我的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;
当我需要对控件进行数据绑定时,我通常使用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/