0

我尝试更新 sqldatabase 服务器。我之前在 Visual Studio 中使用内置“本地数据库”进行了此操作。B 我这样做了(简而言之)

System.Data.SqlServerCe.SqlCeCommandBuilder cb;
cb = new System.Data.SqlServerCe.SqlCeCommandBuilder(da);
cb.DataAdapter.Update(ds1, "Alarmen");

但是内置数据库不符合要求。我不得不使用 Microsoft SQL Server 2005。我也尝试过这样做,但没有奏效。首先,我使用以下命令从数据库中填充数据库集:\

fillDataSet()
{
    SqlConnection _con = new SqlConnection("server=(local)\\SQLExpress;database=Alarmen;integrated Security=SSPI;");
    string sql = "SELECT * FROM tbl_alarmen";

    try
    {
        _con.Open();
    }
    catch (Exception ex)
    {
        log.Info("Database kon niet geopend worden " + ex);
    }

    DataSet ds1 = new DataSet();

    try
    {
        sql = "SELECT * FROM dbo.tbl_alarmen";

        _cmd = new SqlCommand(sql, _con);
        _dap = new SqlDataAdapter(_cmd);

        _dap.Fill(ds1, "Alarmen");

        foreach (DataRow drow in ds1.Tables["Alarmen"].Rows)
        {
            log.Info("Test");
        }

    }
    catch (Exception err)
    {
        log.Info("Database lezen mislukt " + err);
    }

    try
    {
        _con.Close();
    }
    catch (Exception ex)
    {
        log.Info("Database sluiten mislukt " + ex);
    }
        _dap.Fill(ds1, "Alarmen");

        foreach (DataRow drow in ds1.Tables["Alarmen"].Rows)
        {
            log.Info("Test");
        }

    }
    catch (Exception err)
    {
        log.Info("Database lezen mislukt " + err);
    }

    try
    {
        _con.Close();
    }
    catch (Exception ex)
    {
        log.Info("Database sluiten mislukt " + ex);
    }
}

然后我在数据集中添加行并修改项目,并尝试更新数据库中的更改。

UpdateDatabase()
{
    SqlConnection _con = new SqlConnection("server=(local)\\SQLExpress;database=Alarmen;integrated Security=SSPI;");
    string sql = "SELECT * FROM tbl_alarmen";

    try
    {
        _con.Open();
    }
    catch (Exception ex)
    {
        log.Info("Database kon niet geopend worden " + ex);
    }

    try
    {
        var con = new SqlConnection(connectionString);
        var adapter = new SqlDataAdapter("SELECT * FROM tbl_alarmen", con);
        new SqlCommandBuilder(adapter);

        //
        // Fill the DataAdapter with the values in the DataTable.
        //
 adapter.Fill(ds1);
        //
        // Insert the data table into the SQL database.
        //
adapter.Update(ds1);             
    }
    catch (Exception e)
    {
       log.Info("Fill database failed " + e);
    }

    try
    {
        _con.Close();
    }
    catch (Exception ex)
    {
        log.Info("Database sluiten mislukt " + ex);
    }
}

我没有收到任何错误,但数据库一直为空。

我现在不应该使用“SELECT *”来解决安全问题。我需要在未来改变它。

我看我没有问一个真正的问题。我在我的代码中做错了什么,我该如何解决它。

4

1 回答 1

0

尝试

adapter.Fill(ds1, "Alarmen")

接着

adapter.Update(ds1, "Alarmen");

有关更多信息,请参阅此 MS 链接

于 2013-06-12T08:11:53.367 回答