dataset插入数据库

1.用一次数据库连接,n次循环提取ds中的数据,n次数据库

 myConnection.Open();

  for(int   i=0;i<ds.Tables[0].Rows.Count;i++)  
  {  
     
  string sql="insert into i_test(id,username) values(@id,@username)";
     SqlCommand   comm=new SqlCommand(sql,myConnection);
      SqlParameter   para1=new   SqlParameter("@id",SqlDbType.Int);
     para1.Value=ds.Tables[0].Rows[i]["id"].ToString();
     comm.Parameters.Add(para1);
    SqlParameter   para2=new   SqlParameter("@username",SqlDbType.NVarChar,30);
     para2.Value=ds.Tables[0].Rows[i]["username"].ToString();
     comm.Parameters.Add(para2);
     comm.ExecuteNonQuery();
  }

myConnection.Close();

 

### 如何使用 C# 创建 Dataset 并更新数据库 在 C# 中,`DataSet` 是一个内存中的数据容器,可以用于存储和操作从数据库检索到的数据。通过 `DataAdapter` 和其提供的方法(如 `Update`),可以将对 `DataSet` 的更改同步回数据库。以下是详细说明和示例代码[^1]。 #### 1. 使用 `DataAdapter` 填充 `DataSet` `DataAdapter` 提供了将数据从数据库加载到 `DataSet` 的功能。以下是一个示例,展示如何使用 `SqlDataAdapter` 将数据填充到 `DataSet` 中: ```csharp using System; using System.Data; using System.Data.SqlClient; class Program { static void Main() { string connectionString = "your_connection_string"; // 替换为实际的连接字符串 string query = "SELECT * FROM YourTable"; // 替换为实际的查询语句 using (SqlConnection connection = new SqlConnection(connectionString)) { SqlDataAdapter adapter = new SqlDataAdapter(query, connection); // 创建 CommandBuilder 自动生成 Insert/Update/Delete 命令 SqlCommandBuilder commandBuilder = new SqlCommandBuilder(adapter); DataSet dataSet = new DataSet(); adapter.Fill(dataSet, "YourTable"); // 在此处修改 DataSet 内容 DataRow row = dataSet.Tables["YourTable"].Rows[0]; row["ColumnName"] = "New Value"; // 替换为实际列名和新值 // 更新数据库 adapter.Update(dataSet, "YourTable"); } } } ``` #### 2. 关键点解析 - **连接字符串**:需要提供有效的 SQL Server 连接字符串。 - **CommandBuilder**:自动生成 `InsertCommand`、`UpdateCommand` 和 `DeleteCommand`,以便在调用 `DataAdapter.Update` 时能够正确更新数据库[^2]。 - **填充 `DataSet`**:通过 `DataAdapter.Fill` 方法将数据加载到 `DataSet` 中。 - **更新数据库**:通过 `DataAdapter.Update` 方法将对 `DataSet` 的更改同步回数据库。 #### 3. 注意事项 - 确保 `DataSet` 中的表名称与 `DataAdapter.Fill` 方法中指定的名称一致。 - 如果需要手动定义 `InsertCommand`、`UpdateCommand` 和 `DeleteCommand`,可以通过设置 `DataAdapter` 的相应属性来实现。 - 数据库的权限必须允许执行更新操作。 #### 4. 示例代码扩展 如果需要处理更复杂的场景,例如插入新行或删除现有行,可以参考以下代码片段: ```csharp // 插入新行 DataRow newRow = dataSet.Tables["YourTable"].NewRow(); newRow["ColumnName"] = "Value"; dataSet.Tables["YourTable"].Rows.Add(newRow); // 删除行 dataSet.Tables["YourTable"].Rows[0].Delete(); // 更新数据库 adapter.Update(dataSet, "YourTable"); ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值