问一个查询的问题

lxw_happy 2009-04-25 03:27:28
大家好,我想写一个函数,它的功能是根据记录的id值查找这条记录中的一个字符串类型的字段并返回; public override string getPoNameById(int pid)
{
using (SqlConnection conn = new SqlConnection(constring))
{
string name = null;
string sql = "select name from [powers] where id ='"+ pid +"'";
SqlCommand sqlcomm = new SqlCommand();
sqlcomm.Connection = conn;
conn.Open();
sqlcomm.CommandText = sql;
SqlDataReader sdr = sqlcomm.ExecuteReader();
while (sdr.Read())
{
name = Convert.ToString(sdr[1]);
}
return name;
}

}
这么写有错,应该怎么写呢?
...全文
64 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxw_happy 2009-04-25
  • 打赏
  • 举报
回复
谢谢各位,上面的问题解决了,我错在把原先的表中的记录当错查询的表了。应该是我临时表中取值对吧;
我还有一个问题
public override string getPoNameById(int pid)
{
//using (SqlConnection conn = new SqlConnection(constring))
//{

// string name = null;
// string sql = "select name from [powers] where id ='"+ pid +"'";
// conn.Open();
// SqlDataAdapter sda = new SqlDataAdapter(sql,conn);
// DataSet ds = new DataSet();
// sda.Fill(ds);
// DataTable dt = ds.Tables[0];

// DataRow dr = dt.NewRow();
// name = dr["name"].ToString();


// return name;
//}

// }

想通过datarow能读取指定的字段吗?
tomkillua 2009-04-25
  • 打赏
  • 举报
回复
如果是很多条记录的话2楼对

如果只有一条记录的话,1.2.3楼都对。
路人乙e 2009-04-25
  • 打赏
  • 举报
回复
SqlDataReader sdr = sqlcomm.ExecuteReader();
while (sdr.Read())
{
name = Convert.ToString(sdr[1]);
}
==》
name = sqlcomm.ExecuteScalar();//返回第一行的第一列
ws_hgo 2009-04-25
  • 打赏
  • 举报
回复
name = Convert.ToString(sdr[1]);-->name = Convert.ToString(sdr["列名"]); 

zgke 2009-04-25
  • 打赏
  • 举报
回复
string sql = "select name from [powers] where id ='"+ pid +"'";

你只返回了1列


name = Convert.ToString(sdr[0]);
.NET 索引是0开始的

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧