dataset数据修改,更新数据库问题

zzh_kankan 2010-04-28 03:46:09
请问dataset中dataTable数据怎么进行修改?
我现在想到的方法是循环访问dataTable中的行,若行中的标识列满足条件,该列数据更新。
如何将dataset中dataTable数据更新到数据库? 这里是要批量更新数据库表数据。
我的思路:循环dataTable将里面的数据一行一行更新到数据库表中。
我感觉这些方法都不好,不清楚有没有方便高效的方法。
...全文
259 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nimaya_fengtui 2010-04-28
  • 打赏
  • 举报
回复
学习。。。。。。。
wuyq11 2010-04-28
  • 打赏
  • 举报
回复
using (SqlConnection conn = new SqlConnection(""))
{
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter("select * from Tb", conn);
SqlCommandBuilder Builder = new SqlCommandBuilder(sda);

sda.Fill(ds);
DataTable dt = ds.Tables[0];

ds.Dispose();
sda.Dispose();
conn.Close();

}
请叫我卷福 2010-04-28
  • 打赏
  • 举报
回复
批量更新,请用SqlDataAdapter~~
SqlDataAdapter ad=new SqlDataAdapter(selectCommand参数);
ad.Fill(Set);//填充Set

SqlCommandBuilder builder=new SqlCommandBuilder(ad);//不要丢了,只能用在DataTable中的数据来自一个表的场合

Set.Tables[0].Rows[0]["ID"]="0x1234";//更改内存数据

ad.Update(Set);//更新到物理数据库


zzh_kankan 2010-04-28
  • 打赏
  • 举报
回复
批量插入的问题4楼的有些问题,进行些修改问题解决。
dataset中数据修改问题还没有找到好的方法dataset中的
dataTable.Rows.Find()这个需要主键。
zzh_kankan 2010-04-28
  • 打赏
  • 举报
回复
4楼那个queryString用什么代替,若是插入语句怎么写?
zzh_kankan 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 criedshy 的回复:]
C# code
public DataSet CreateCmdsAndUpdate(DataSet dataSet, string connectionString,
string queryString)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
……
[/Quote]

这个应该可以实现批量插入的操作,这个queryString 的插入语句怎么写?
taixz072330 2010-04-28
  • 打赏
  • 举报
回复
SqlDataAdapter d = new SqlDataAdapter();
DataSet ds = new DataSet();
d.Fll(ds,"表名");
ds["表名"].Rows[0] = "test";
d.Update(ds,"表名");
criedshy 2010-04-28
  • 打赏
  • 举报
回复
public DataSet CreateCmdsAndUpdate(DataSet dataSet, string connectionString,
string queryString)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand(queryString, connection);
OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

connection.Open();

DataSet customers = new DataSet();
adapter.Fill(customers);

//code to modify data in dataset here

adapter.Update(customers);

return customers;
}
}


参考http://msdn.microsoft.com/zh-cn/library/at8a576f(VS.80).aspx
修改一下昵称 2010-04-28
  • 打赏
  • 举报
回复
SqlDataAdapter d = new SqlDataAdapter();
System.Data.DataTable dt = new DataTable();
d.Fill(dt);
dt.Rows[0][0] = "aaa";
d.Update(dt);
liuyileneal 2010-04-28
  • 打赏
  • 举报
回复

public static void BatchUpdate(DataTable dataTable,Int32 batchSize)
{
// Assumes GetConnectionString() returns a valid connection string.
string connectionString = GetConnectionString();
// Connect to the AdventureWorks database.
using (SqlConnection connection = new
SqlConnection(connectionString))
{
// Create a SqlDataAdapter.
SqlDataAdapter adapter = new SqlDataAdapter();
// Set the UPDATE command and parameters.
adapter.UpdateCommand = new SqlCommand(
"UPDATE Production.ProductCategory SET "
+ "Name=@Name WHERE ProductCategoryID=@ProdCatID;",
connection);
adapter.UpdateCommand.Parameters.Add("@Name",
SqlDbType.NVarChar, 50, "Name");
adapter.UpdateCommand.Parameters.Add("@ProdCatID",
SqlDbType.Int, 4, "ProductCategoryID");
adapter.UpdateCommand.UpdatedRowSource = UpdateRowSource.None;
// Set the INSERT command and parameter.
adapter.InsertCommand = new SqlCommand(
"INSERT INTO Production.ProductCategory (Name) VALUES (@Name);",
connection);
adapter.InsertCommand.Parameters.Add("@Name",
SqlDbType.NVarChar, 50, "Name");
adapter.InsertCommand.UpdatedRowSource = UpdateRowSource.None;
// Set the DELETE command and parameter.
adapter.DeleteCommand = new SqlCommand(
"DELETE FROM Production.ProductCategory "
+ "WHERE ProductCategoryID=@ProdCatID;", connection);
adapter.DeleteCommand.Parameters.Add("@ProdCatID",
SqlDbType.Int, 4, "ProductCategoryID");
adapter.DeleteCommand.UpdatedRowSource = UpdateRowSource.None;
// Set the batch size.
adapter.UpdateBatchSize = batchSize;
// Execute the update.
adapter.Update(dataTable);
}


批量更新
zzh_kankan 2010-04-28
  • 打赏
  • 举报
回复
大家帮帮忙!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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