我已经制定了一种方法,如果表中有某些内容,它会获得它的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
的列
答案 0 :(得分:0)
在此处添加列名称Select MAX(MsgID) as MsgID FROM Msgs