SqlConnection conn = new SqlConnection("Data Source=OLEDBGHHHD;Database=vv;Integrated Security=True;");
string sql = "SELECT * FROM kkk "; SqlDataAdapter sDa = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); DataTable dt = new DataTable();sDa.Fill(ds, "kkk");
ds.Tables[0].Rows[0].ItemArray[0] = "unix";
sDa.Update(ds,"kkk");
我运行这段代码后 发现数据中的内容没有改变 程序也没有报错 为什么?通过ds向数据库UPdata不是这样写的代码吗?
DataSet dataSet = new DataSet();using (OleDbConnection connection =new OleDbConnection(connectionString))
{
connection.Open();
OleDbDataAdapter adapter =new OleDbDataAdapter();
adapter.SelectCommand =new OleDbCommand(queryString, connection);
OleDbCommandBuilder builder =new OleDbCommandBuilder(adapter);adapter.Fill(dataSet);// Code to modify data in the DataSet here.// Without the OleDbCommandBuilder, this line would fail.
adapter.UpdateCommand = builder.GetUpdateCommand();
adapter.Update(dataSet);
SqlDataAdapter dataAdpater = new SqlDataAdapter(
"SELECT CategoryID, CategoryName FROM Categories", connection);dataAdpater.UpdateCommand = new SqlCommand(
"UPDATE Categories SET CategoryName = @CategoryName " +
"WHERE CategoryID = @CategoryID" , connection);dataAdpater.UpdateCommand.Parameters.Add(
"@CategoryName", SqlDbType.NVarChar, 15, "CategoryName");SqlParameter parameter = dataAdpater.UpdateCommand.Parameters.Add(
"@CategoryID", SqlDbType.Int);
parameter.SourceColumn = "CategoryID";
parameter.SourceVersion = DataRowVersion.Original;DataSet dataSet = new DataSet();
dataAdpater.Fill(dataSet, "Categories"); DataRow row = dataSet.Tables["Categories"].Rows[0];
row ["CategoryName"] = "New Category";dataAdpater.Update(dataSet, "Categories");
' Assumes connection is a valid SqlConnection.
Dim adapter As SqlDataAdapter = New SqlDataAdapter( _
"SELECT CategoryID, CategoryName FROM Categories", connection)adapter.UpdateCommand = New SqlCommand( _
"UPDATE Categories SET CategoryName = @CategoryName " & _
"WHERE CategoryID = @CategoryID", connection)adapter.UpdateCommand.Parameters.Add( _
"@CategoryName", SqlDbType.NVarChar, 15, "CategoryName")Dim parameter As SqlParameter = adapter.UpdateCommand.Parameters.Add( _
"@CategoryID", SqlDbType.Int)
parameter.SourceColumn = "CategoryID"
parameter.SourceVersion = DataRowVersion.OriginalDim dataSet As DataSet = New DataSet
adapter.Fill(dataSet, "Categories") Dim row As DataRow = dataSet.Tables("Categories").Rows(0)
row("CategoryName") = "New Category"adapter.Update(dataSet, "Categories")
SqlConnection conn = new SqlConnection("Data Source=CHARGEFORWARD;Database=vv;Integrated Security=True;");
static string sql = "SELECT * FROM kkk "; SqlDataAdapter sDa = new SqlDataAdapter(); DataSet ds = new DataSet();
DataTable dt = new DataTable();
SqlCommandBuilder builder = new SqlCommandBuilder(); builder.DataAdapter = sDa;
ds.Tables[0].Rows[0].ItemArray[0] = "unix";
sDa.UpdateCommand = builder.GetDeleteCommand();
sDa.Update(ds,"kkk");
这样写还是不能更新数据库 为什么????
SqlConnection conn = new SqlConnection("Data Source=CHARGEFORWARD;Database=vv;Integrated Security=True;");
string sql = "SELECT * FROM kkk "; SqlDataAdapter sDa = new SqlDataAdapter(); DataSet ds = new DataSet();
DataTable dt = new DataTable();
SqlCommandBuilder builder = new SqlCommandBuilder(); builder.DataAdapter = sDa;
ds.Tables[0].Rows[0].ItemArray[0] = "unix";
sDa.UpdateCommand = builder.GetUpdateCommand();
sDa.Update(ds,"kkk");这样写哪里有错? 还是不能改变数据库..
UpdateCommand 、InsertCommand、SelectCommand、DeleteCommand等方可
SqlConnection conn = new SqlConnection("Data Source=CHARGEFORWARD;Database=vv;Integrated Security=True;");
string sql = "SELECT * FROM kkk "; SqlDataAdapter sDa = new SqlDataAdapter(); DataSet ds = new DataSet();
DataTable dt = new DataTable();
SqlCommandBuilder builder = new SqlCommandBuilder(); builder.DataAdapter = sDa;
ds.Tables[0].Rows[0].ItemArray[0] = "unix";
ds.AcceptChanges();
sDa.UpdateCommand = builder.GetUpdateCommand();
sDa.Update(ds,"kkk");
sDa.UpdateCommand.CommandText="Update kkk set …………";//自己补充一下。
我整个程序的设计就是为了不加类似的句子! 我把DataSet和DataGridView绑定,然后把DataSet和数据库绑定,这样单击"更新"后直接可以从DataGridView修改数据库的内容,而客户在DataGridView中修改的数据位置是动态的 "Update kkk set …………" 类似的这种句子只能修改一个地方(固定列中的某个值) 不适合我这个程序.
SqlDataAdapter sda;
string constr = "Data Source=***;Initial Catalog=***;Persist Security Info=True;User ID=***;Password=***";
string sql = "select sid,Name,Subject,Result from t_test_b";
sda = new SqlDataAdapter(sql, constr);
sda.Fill(ds, "S1");
DataTable dt = ds.Tables["S1"];
SqlCommandBuilder scb = new SqlCommandBuilder(sda);
int erows = sda.Update(ds, "S1");注意红色加粗部分,你的可能不对
更新下...
你在SQL.FILL();后面加一句
SQLCOMMANDBUILDER SQLBUILDER=NEW SQLCOMMANDBUILDER(SQL);