日期:2014-05-18  浏览次数:20930 次

C# 使用SqlDataReader取一条记录的一个字段的字符串.
已定义:
数据库中表结构为:
---------------------
ID | Type | Title | Sequence |
---------------------
1 | 物资大类 | 采购物资 | 001 |
 class DataCon
 {
  ..............
  public SqlDataReader getread(string M_str_sqlstr)
  {
  SqlConnection sqlcon = this.getcon();
  SqlCommand sqlcom = new SqlCommand(M_str_sqlstr, sqlcon);
  sqlcon.Open();
  SqlDataReader sqlread = sqlcom.ExecuteReader(CommandBehavior.CloseConnection);
  return sqlread;
  }
}
string str1 = “采购物资”;
SqlDataReader sdr = datacon.getread("select * from tb_CodeInfo where Title='" + str1 + "'");
string str4 = sdr.GetString(3);

这样写为什么不对?我的取不出“001”这个字符串。应该怎么改?
我想用已定义的getread方法获得"001"并放在str4里。



------解决方案--------------------
网上找找例子大把啊
------解决方案--------------------
还要先学会下断点跟踪代码
------解决方案--------------------
你数据库里不止一条数据吧??

string str1 = “采购物资”;
SqlDataReader sdr = datacon.getread("select * from tb_CodeInfo where Title='" + str1 + "'");
int num = 0;
while(sdr.Read())
{
num++;
Response.Write(sdr.GetString(3));
}
Response.Write("共有"+num+"符合条件的记录!");

------解决方案--------------------
SqlDataReader sdr = datacon.getread("select * from tb_CodeInfo where Title='" + str1 + "'");
sdr.Read();//至少要读一次,否则取不到数据。
string str4 = sdr.GetString(3);