将SQL选择结果存储到字符串变量中

时间:2015-02-11 00:04:30

标签: c# sql-server

我正在尝试将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"));

有关如何解决此问题的任何建议?

1 个答案:

答案 0 :(得分:2)

如果Brand_ID存储在整数字段中,则应将其保留为整数。 GetString失败,因为底层字段不是字符串,您只需使用GetInt32(参见SqlDataReader文档)

int newBrandID = reader.GetInt32(reader.GetOrdinal("Brand_ID"));

然后,如果出于任何目的,你想要它作为一个字符串,只需要将ToString()方法应用于整数

string brandID = newBrandID.ToString();