【发布时间】:2013-09-20 16:40:06
【问题描述】:
问题:将 Sql 中的位值转换为 C# 中的 Int 的正确方法是什么?
目标: 使用Sql2008R2 和C#,将值转换为整数以插入另一个表。
错误:以下代码返回此错误。输入字符串的格式不正确。
public struct Mystruct
{
public Int32 Active
}
public static bool ReturnActivity
{
String sql = "";
{
conn.Open();
sql = "SELECT " +
"database.dbo.table1.Active " +
"FROM " +
"database.dbo.tabe1 ";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
MyStruct ReturnActivity = new MyStruct();
ReturnActivity.Active = Convert.ToInt32(dr.GetValue(0).ToString());
SomeArraylist.Add(MyStruct);
}
dr.Close();
conn.Close();
return true;
}
提前感谢您提供任何 cmets、建议或建议。
【问题讨论】:
-
在哪里此代码中发生的错误?您是否已调试以查找值是什么?
-
错误发生在“ReturnActivity.Active = Convert...”它没有生成值
-
您的列可以为空吗?如果是这样,并且您没有转换为可为空的 int (
int?),那么您一定会遇到异常。 -
你的错误到底是什么?
-
@TristanDescartes 将
GetValue()更改为GetBoolean(0),同时删除ToString(),您应该已经设置好了。