请教:将dataset更新到后端数据库,欢迎讨论,解决即结

tihua 2004-10-15 04:28:52
手工建立datatable,并把它作为datagrid的数据源,我要把datagrid的数据更新到数据库里该怎样做呢?有以下思路但不知怎样实现:循环datatable的row,取出每一行的数据并将它赋于变量(每个变量对应一个datatable的字段的值) 然后用sql语名insert into 表(字段1,字段2)values (变量1,变量2)把它更新数据库,不知您怎样看?或如何解决这类情况?(分数不够再开贴)附前部分代码:
Dim wastageinset As New DataSet
Dim wastageintable As DataTable = New DataTable("wastage_b")
Dim col_po As New DataColumn
Dim col_wastageId As New DataColumn
Dim col_sl As New DataColumn
With col_wastageId
.ColumnName = "代码"
.DataType = System.Type.GetType("System.String")
.DefaultValue = ""
End With
With col_sl
.ColumnName = "数量"
.DataType = System.Type.GetType("System.Int32")
.DefaultValue = 0
End With
wastageintable.Columns.Add(col_wastageId)
wastageintable.Columns.Add(col_sl)
wastageinset.Tables.Add(wastageintable)
Me.DataGrid1.DataSource = wastageinset.Tables(0)
...全文
131 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
brightheroes 2004-10-15
  • 打赏
  • 举报
回复
参考:
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vccore/html/_core_recordset.3a_.adding.2c_.updating.2c_.and_deleting_records_.28.odbc.29.asp
brightheroes 2004-10-15
  • 打赏
  • 举报
回复
楼主请参考SqlDataApater.Update方法
足够了
einsteincao 2004-10-15
  • 打赏
  • 举报
回复
首先取得数据,放到DataGrid里

System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("server=localhost;database=northWind;uid=sa;password=110");
conn.Open();
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter("select * from student",conn);
dt = new System.Data.DataSet();
da.Fill(dt,"student");

然后绑定数据集和DataGrid
DataGrid.SetDataBinding(dt,"student");
然后进行数据的操作如:
增加:
this.BindingContext[dt,"student"].AddNew();
删除:
this.BindingContext[dt,"student"].RemoveAt(this.BindingContext[dt,"student"].Position);
最后把结果写回数据库:


// sqlInsertCommand1
//
this.sqlInsertCommand1.CommandText = "INSERT INTO student(stuno, name) VALUES (@stuno, @name)";
this.sqlInsertCommand1.Connection = this.conn;
this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@stuno", System.Data.SqlDbType.VarChar, 4, "stuno"));
this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@name", System.Data.SqlDbType.VarChar, 50, "name"));
//
// sqlUpdateCommand1
//
this.sqlUpdateCommand1.CommandText = "UPDATE student SET stuno = @stuno, name = @name WHERE (stuno = @Original_stuno)";
this.sqlUpdateCommand1.Connection = this.conn;
this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@stuno", System.Data.SqlDbType.VarChar, 4, "stuno"));
this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@name", System.Data.SqlDbType.VarChar, 50, "name"));
this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_stuno", System.Data.SqlDbType.VarChar, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "stuno", System.Data.DataRowVersion.Original, null));

// sqlDeleteCommand1
//
this.sqlDeleteCommand1.CommandText = "DELETE FROM student WHERE (stuno = @Original_stuno)";
this.sqlDeleteCommand1.Connection = this.conn;
this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_stuno", System.Data.SqlDbType.VarChar, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "stuno", System.Data.DataRowVersion.Original, null));

this.sqlDa.DeleteCommand = this.sqlDeleteCommand1;
this.sqlDa.InsertCommand = this.sqlInsertCommand1;
this.sqlDa.UpdateCommand = this.sqlUpdateCommand1;
try
{
sqlDa.Update(dt.GetChanges,"student");
return true;
}
catch(System.Data.SqlClient.SqlException ex)
{

return false;
}
finally
{
conn.Close();
}

16,549

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧