我尝试运行程序时遇到此错误。我相信它是因为在SQL Server中这是对还是错? 1还是0?有谁知道如何解决?
void StaticS()
{
string constring = "REMOVED";
string Query = "REMOVED";
SqlConnection conDataBase = new SqlConnection(constring);
SqlCommand cmdDataBase = new SqlCommand(Query, conDataBase);
SqlDataReader myReader;
try
{
conDataBase.Open();
myReader = cmdDataBase.ExecuteReader();
while (myReader.Read())
{
string sName = myReader.GetString(0);
comboBox17.Items.Add(sName);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
答案 0 :(得分:2)
string sName = myReader[0].ToString();
如果您只想从DataReader获取值的字符串表示而不关注实际值类型 - 您可以使用DataReader索引器并只调用ToString()方法。
答案 1 :(得分:2)
看看这一行:
string sName = myReader.GetString(0);
GetString
方法返回string
,因此代码中没有强制转换。但GetString
本身是通过阅读字段0
并尝试将其转换为string
来实现的。看起来字段0
是一个布尔字段,并且没有从布尔到字符串的自动转换。因此GetString()
失败。
相反,您可以明确执行转换:
string sName = myReader[0].ToString();
此处,myReader[0]
读取字段并将值返回为object
。然后由你决定如何把它变成一个字符串。
答案 2 :(得分:0)
听起来字段0是bit
字段,在这种情况下你可以使用:
bool sName = myReader.GetBoolean(0);