Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我想打印用户ID,但在这里打印是;System.Data.SqlClient.SqlDataReader“;_C#_Winforms - Fatal编程技术网

C# 我想打印用户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在注释中

打印用户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在注释中提到的,如果查询总是返回单个值,那么您也可以使用

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?