//建立数据库连接
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
//新建一个SqlDataAdapter,因为只用它来做更新,所以在实例化时就不再填写Select的SQL语句
using (SqlDataAdapter adapter = new SqlDataAdapter("", conn))
{
//写出更新需要使用的SQL语句
string sqlStr = "update TableName set strName = @strName where id = @id";
//新建一个SqlCommand赋给adapter的UpdateCommand
adapter.UpdateCommand = new SqlCommand(sqlStr, conn);
//向UpdateCommand添加列映射,参数含义分别是:
//SQL语句参数名、字段数据类型、字段长度(我也不知道这啥意思,可能char什么的要用到)和数据源表列名
adapter.UpdateCommand.Parameters.Add("@strName", SqlDbType.VarChar, 50, "strName");
adapter.UpdateCommand.Parameters.Add("@id", SqlDbType.Int, 4, "id");
//当设置UpdateBatchSize为非1时,需要将此设为None
adapter.UpdateCommand.UpdatedRowSource = UpdateRowSource.None;
//设置每次到服务器批处理的行数
adapter.UpdateBatchSize = 1000;
//进行更新操作,DataSet 是数据源表,里面的数据能符合上面参数的映射关系即可
adapter.Update(ds);
ds.AcceptChanges();
}
}
你的更新语句跟dataset也没有关系啊,为什么要用apapter更新呢
SqlCommand cmd = conn.createCommand();
cmd.commandText = "update TableName set strName = @strName where id = @id";
for(int i=0,i<1000;i++)
{
cmd.Parameters.Add("@strName", SqlDbType.VarChar, 50, "strName");
cmd.Parameters.Add("@id", SqlDbType.Int, 4, "id");
cmd.executenonequery();
}
大概是这么写