我尝试更新 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 *”来解决安全问题。我需要在未来改变它。
我看我没有问一个真正的问题。我在我的代码中做错了什么,我该如何解决它。