我有 getRowAmount()和添加()功能。我尝试使用 getRowAmount()获取表格的行数。我添加一个值并根据getRowAmount + 1计算ID或主键。因此,当我向表中添加一个值并在第一次获得行 时,它将起作用并且ListView显示行和金额是正确的。但是,当我尝试再次添加一个值(这意味着再次调用 getRowAmount()时),它表示存在重复的主键。这是我的代码:
public int getRowAmount(){
SqlCommand cmd = new SqlCommand("select count(*) from timelineTable", conn);
SqlAdapter adapter = new SqlAdapter(cmd);
DataTable virtualTable = new DataTable();
adapter.Fill(virtualTable);
int rowAmount = Convert.ToInt32(virtualTable.Rows[0][0].ToString());
return rowAmount;
}
上面的函数只在调用时计算一次行。我很抱歉我是C#的初学者。有解决方案吗 谢谢!
答案 0 :(得分:1)
尝试使用SqlCommand中的ExecuteScalar方法,而不是使用SqlAdapter和DataTable。它会更简单,应该返回DataBase的实际结果。
public int getRowAmount()
{
SqlCommand cmd = new SqlCommand("select count(*) from timelineTable", conn);
return cmd.ExecuteScalar();
}
答案 1 :(得分:0)
这可能是您表中Primary_Key的原因。 为解决此问题,我删除了表中的约束主键。