c# 关于DataTable的简单问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 04:28:35
SqlConnection con = new SqlConnection(.........);
SqlCommand cmd=new SqlCommand(select * form tb1 where id=2);
con.Open();
DataTable dt = new DataTable();
dt = cmd.ExecuteReader();
con.Close();

用DataSet太浪费了吧 只想取出id=2的一条记录进行处理
所以dt = cmd.ExecuteReader(); 这么写不对哦 迷糊了

你既然决定用datatable了,那就老老实实地用dataAdapter把
da.fill(dt)就可以了
要不然就用datareader dr=cmd.executereader
dr.read()
不过datatable跟dataset真的差不多大

虽然只有一条记录.但按你的路子往下写.只能用dataset.没什么浪费不浪费的...

显然,只读取一条记录,当然用DataReader好
而用cmd.ExecuteReader()返回的也应该是DateReader而不是一个DataSet所以,代码应该为:
SqlDataReader dr=cmd.ExecuteReader();
if(dr.HasRow)
{
.........
}

不知道你的浪费是什么意思,dataset里面可以放数个不同的表。而你这里datatable也是一个表。如果dataset里面放一个表与你这个datatable有啥区别???

应该这样写:
SqlConnection con = new SqlConnection(.........);
SqlCommand cmd=new SqlCommand(select * form tb1 where id=2);
con.Open();
DataTable dt = new DataTable();
SqlDataAdapter mySDA = new SqlDataAdapter();
mySDA.SelectCommand = cmd;
mySDA.Fill(dt);
con.Close();

.Fill(datatable)记得也是一样的用