从DataTableReader获取值

时间:2014-03-12 09:48:09

标签: sql sql-server

我已经制定了一种方法,如果表中有某些内容,它会获得它的MsgID列的值,并返回一个大于1的值,如果没有任何内容表返回0;

这是方法:

public int getMsgNum()
{
    public static string CON_STR = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + HttpContext.Current.Server.MapPath("~/App_Data/Database.mdf") + ";Integrated Security=True;User Instance=True";
    SqlDataAdapter daObj = new SqlDataAdapter("Select MAX(MsgID) FROM Msgs", CON_STR);

    DataSet dsObj = new DataSet();
    daObj.Fill(dsObj);
    DataTableReader r = dsObj.Tables[0].CreateDataReader(); 

    if (r.Read())
        return int.Parse(r["MsgID"].ToString()) + 1;

    return 0;
}

我运行调试,它告诉我问题在于行

return int.Parse(r["MsgID"].ToString()) + 1;

出现错误:

  

专栏' MsgID'不属于表格表。

但是我也注意到,即使表格中没有任何内容,它也会进入if (r.Read())

我已经检查了几次,表格的名称和CON_STR都是正确的,表格中有一个名为MsgID的列

1 个答案:

答案 0 :(得分:0)

在此处添加列名称Select MAX(MsgID) as MsgID FROM Msgs