C# SqlDataReader可以';即使发现了一些东西,也不能读取数据
正如标题所说,SqlDataReader无法读取它找到的数据。我正在查询一个特定的表,以便在以后向另一个表添加数据时使用用户名。读取器查找结果(reader.HasRows为true),但无法读取结果。代码如下:C# SqlDataReader可以';即使发现了一些东西,也不能读取数据,c#,asp.net,.net,sql-server,C#,Asp.net,.net,Sql Server,正如标题所说,SqlDataReader无法读取它找到的数据。我正在查询一个特定的表,以便在以后向另一个表添加数据时使用用户名。读取器查找结果(reader.HasRows为true),但无法读取结果。代码如下: Connection.Open(); Command = new SqlCommand("SELECT ID FROM Users WHERE Username = @Username", Connection); Command.Parameters.Add("@Username",
Connection.Open();
Command = new SqlCommand("SELECT ID FROM Users WHERE Username = @Username", Connection);
Command.Parameters.Add("@Username", TextBox1.Text);
SqlDataReader Reader = Command.ExecuteReader();
if (Reader.HasRows)
{
var ID = Reader[0];
Reader.Close();
Command = new SqlCommand("INSERT INTO Locations (User_ID,Location,Date) VALUES (@User_ID,@Location,GETDATE())", Connection);
Command.Parameters.Add("@User_ID", ID);
Command.Parameters.Add("@Location", TextBox2.Text);
Command.ExecuteNonQuery();
}
else
{
ErrorLabel.Text = "Username could not be found.";
}
您必须调用Reader.Read()才能前进到下一行
您必须调用Reader.Read()才能前进到下一行 是的。你从不读书 while(Reader.Read()){ } 而不是,如果有 你必须叫雷德。就像每一个教程节目一样。是的。你从不读书 while(Reader.Read()){ } 而不是,如果有
你必须叫雷德。就像每个教程所显示的一样。使用
if(reader.Read())
而不是if(reader.HasRows)
使用if(reader.Read())
而不是if(reader.HasRows)
您需要在reader上调用Read
方法
例如
更多信息请参见。您需要在reader上调用
Read
方法
例如
更多信息请参见。我会这样做:
while (Reader.HasRows())
{
Reader.Read();
string ID = Reader["ID"].ToString();
...
}
我会这样做:
while (Reader.HasRows())
{
Reader.Read();
string ID = Reader["ID"].ToString();
...
}