gpt4 book ai didi

C# SqlCommand - 将结果集设置为变量

转载 作者:行者123 更新时间:2023-11-30 13:33:45 24 4
gpt4 key购买 nike

我在 C# 中运行一条返回一个值(字符串)的 SQL 命令。然后我试图将它保存到一个变量,但它总是抛出这个异常:

A first chance exception of type 'System.InvalidOperationException' occurred in System.Data.dll The thread '' (0x1bbc) has exited with code 0 (0x0). System.InvalidOperationException: Invalid attempt to read when no data is present. at System.Data.SqlClient.SqlDataReader.GetValue(Int32 i)

但是,当我在 SQL Server 中运行相同的命令时,它肯定会输出一个值。

myCommand = new SqlCommand("SELECT TrialName FROM dbo.CT WHERE NumId='"+TrialId+"'", myConnection);    
SqlDataReader dr = myCommand.ExecuteReader();
String TName = dr[0].ToString();

即使我对整个 sql 命令进行硬编码(而不是使用 TrialId 变量),它仍然会抛出异常。这是怎么回事?

最佳答案

在从数据读取器读取之前必须调用 dr.Read():

myCommand = new SqlCommand("SELECT TrialName FROM dbo.CT WHERE NumId='"+TrialId+"'", 

myConnection);
SqlDataReader dr = myCommand.ExecuteReader();
if(dr.Read())
{
String TName = dr[0].ToString();
}

SqlDataReader.Read() 将读取器前进到下一条记录,并在没有更多记录时返回 false。

关于C# SqlCommand - 将结果集设置为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5808915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com