C# - SQL - 计算表行的功能只计算一次?

时间:2017-02-02 07:29:22

标签: c# sql-server

我有 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#的初学者。有解决方案吗 谢谢!

2 个答案:

答案 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的原因。 为解决此问题,我删除了表中的约束主键。