C# 我想打印用户ID,但在这里打印是;System.Data.SqlClient.SqlDataReader“;
打印用户ID,但在此位置打印 System.Data.SqlClient.SqlDataReader 返回C# 我想打印用户ID,但在这里打印是;System.Data.SqlClient.SqlDataReader“;,c#,winforms,C#,Winforms,打印用户ID,但在此位置打印 System.Data.SqlClient.SqlDataReader 返回SqlDataReader的完整类型名,因为它相当于rdr.GetType().ToString()(备注部分的最后一句话) 相反,您需要以下内容: if(rdr.Read()) frm.lbluserid.Text = rdr.GetString(0); frm.lbluserid.Text = (String) cmd.ExecuteScalar(); 但是正如Rup在注释中
SqlDataReader
的完整类型名,因为它相当于rdr.GetType().ToString()
(备注部分的最后一句话)
相反,您需要以下内容:
if(rdr.Read())
frm.lbluserid.Text = rdr.GetString(0);
frm.lbluserid.Text = (String) cmd.ExecuteScalar();
但是正如Rup在注释中提到的,如果查询总是返回单个值,那么您也可以使用
frm.lbluserid.Text = Convert.ToString(cmd.ExecuteScalar());
返回SqlDataReader
的完整类型名,因为它相当于rdr.GetType().ToString()
(备注部分的最后一句话)
相反,您需要以下内容:
if(rdr.Read())
frm.lbluserid.Text = rdr.GetString(0);
frm.lbluserid.Text = (String) cmd.ExecuteScalar();
但是正如Rup在注释中提到的,如果查询总是返回单个值,那么您也可以使用
frm.lbluserid.Text = Convert.ToString(cmd.ExecuteScalar());
请尝试以下代码:-
while (rdr.Read())
{
frm.lbluserid.Text = rdr.GetString(0);
}
如本文所述:
如前所述,SqlDataReader通过顺序
流动要读取此数据,必须逐行从表中提取数据
读取一行后,上一行将不再可用。到
如果再次读取该行,则必须创建
然后再次读取数据流
从数据库返回的数据流中读取数据的典型方法
SqlDataReader使用while循环遍历每一行
额外注意事项:-
我建议您使用Command.ExecuteReader从数据库中获取刚好的值。相反,您应该使用Command.ExecuteScalar,如下所示:
if(rdr.Read())
frm.lbluserid.Text = rdr.GetString(0);
frm.lbluserid.Text = (String) cmd.ExecuteScalar();
请尝试以下代码:-
while (rdr.Read())
{
frm.lbluserid.Text = rdr.GetString(0);
}
如本文所述:
如前所述,SqlDataReader通过顺序
流动要读取此数据,必须逐行从表中提取数据
读取一行后,上一行将不再可用。到
如果再次读取该行,则必须创建
然后再次读取数据流
从数据库返回的数据流中读取数据的典型方法
SqlDataReader使用while循环遍历每一行
额外注意事项:-
我建议您使用Command.ExecuteReader从数据库中获取刚好的值。相反,您应该使用Command.ExecuteScalar,如下所示:
if(rdr.Read())
frm.lbluserid.Text = rdr.GetString(0);
frm.lbluserid.Text = (String) cmd.ExecuteScalar();
你期待不止一排吗?改为ExecuteScalar?您是否期望不止一行?而不是ExecuteScalar?