SQLDataAdapter正在更新,但它将附加到数据库而不是更新

时间:2012-03-30 15:14:23

标签: c# wpf sql-server

我有一个我一直在研究的应用程序,直到现在我一直在使用Access作为数据库。我将它转换为SQL,我对它有点新鲜。

我的代码如下

public bool Update_DB_FromTable(DataTable DTable)
{
    try
    {

        SqlConnection myConnection = new SqlConnection("Data Source=" + hostname + " ;User ID=SALX; Password=password;" +
                              "database=" + dbname + "; " +
                              "connection timeout=30");
        myConnection.Open();
        SqlCommand myCommand = new SqlCommand("SELECT * FROM dbo." + tablename, myConnection);
        SqlDataAdapter da = new SqlDataAdapter(myCommand);
        SqlCommandBuilder b = new SqlCommandBuilder(da);
        int count = da.Update(DTable);
        myConnection.Close();
        return true;
    }
    catch
    {
        return false;
    }
}

这是有效的,但每次运行时它只是将数据附加到数据库的末尾,而不像Access中那样“更新”数据库。最糟糕的部分是因为它创建了许多重复的条目,我无法从数据库中手动删除它们。

非常感谢任何帮助。

干杯,

-Sean -

这可能是一个真正的菜鸟问题,但我很难过......

1 个答案:

答案 0 :(得分:3)

“DTable”中的行决定数据库中相应行的内容。如果“DTable”中的行具有状态“isNew”,则将插入该行,如果状态为“已修改”,则将更新db-table。