我正在尝试将SQL查询的结果存储到string
变量中。这就是我所拥有的:
string strName = dt.Rows[i][name].ToString();
string selectBrandID = "SELECT [Brand_ID] FROM [myTable] WHERE [real_name] = '" + strName + "'";
using (SqlCommand sqlCmdSelectBrandID = new SqlCommand(selectBrandID, sqlConn))
{
sqlCmdSelectBrandID .Connection.Open();
using (SqlDataReader reader = sqlCmdSelectBrandID.ExecuteReader())
{
if (reader.HasRows)
{
reader.Read();
string newBrandID = reader.GetString(reader.GetOrdinal("Brand_ID"));
}
sqlCmdSelectBrandID.Connection.Close();
}
}
目前会在Unable to cast object of type 'System.Int32' to type 'System.String'.
行引发异常string newBrandID =reader.GetString(reader.GetOrdinal("Brand_ID"));
。
有关如何解决此问题的任何建议?
答案 0 :(得分:2)
如果Brand_ID
存储在整数字段中,则应将其保留为整数。 GetString失败,因为底层字段不是字符串,您只需使用GetInt32(参见SqlDataReader文档)
int newBrandID = reader.GetInt32(reader.GetOrdinal("Brand_ID"));
然后,如果出于任何目的,你想要它作为一个字符串,只需要将ToString()
方法应用于整数
string brandID = newBrandID.ToString();