无法在表中获取列名称

时间:2013-03-13 15:21:35

标签: c# sql tsql

这是我的代码:

     conn.Open();
     string sql = "select min(IMG_ID) from IMGDETAIL where PRO_ID = @id";
     cmd = new SqlCommand(sql, conn);
     cmd.Parameters.Add(new SqlParameter("@id", nailId));
     da = new SqlDataAdapter(cmd);
     da.Fill(dt);    
     if (dt.Rows.Count > 0)
      {
        foreach (DataRow row in dt.Rows)
        {
          id = int.Parse(row["IMG_ID"].ToString());                      
        }
      }

我尝试获取一个id列,它显示一个错误,表示我的表没有IMG_ID列,但是我检查它已经是这个列。

有人可以告诉我出了什么问题吗?

3 个答案:

答案 0 :(得分:1)

请尝试以下操作 - MIN(...)不会为列提供与MIN内容相同的名称。

string sql = "select min(IMG_ID) AS IMG_ID from IMGDETAIL where PRO_ID = @id";

答案 1 :(得分:1)

您没有IMG_ID列,但是来自MIN(IMG_ID)的未命名列。使用AS为其命名,如

string sql = "select min(IMG_ID) AS IMG_ID from IMGDETAIL where PRO_ID = @id";

答案 2 :(得分:0)

更正您的查询以避免此错误,因为您的查询创建了一个未命名的列,它应该是:

select min(IMG_ID) as IMG_ID  from IMGDETAIL where PRO_ID = @id

如果您使用此选项,则会为该列命名为IMG_ID