具体是这个样子的:
通过查询语句将数据集放入DATASET,
通过对这个DATASET进行多次插入和更新及删除操作后,
使用SQLADPTER将此DATASET对进行数据库批处理的更新操作(操作包括之前的插入和更新及删除)
假如哪位高人能看明白请给块代码指点指点.
通过查询语句将数据集放入DATASET,
通过对这个DATASET进行多次插入和更新及删除操作后,
使用SQLADPTER将此DATASET对进行数据库批处理的更新操作(操作包括之前的插入和更新及删除)
假如哪位高人能看明白请给块代码指点指点.
{
try
{
SqlConnection conn = new SqlConnection(PubVar.PubStr);
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand("delete * form sms_sendout_info",cn);
cn.Open();
DataSet ds = new DataSet();
ds.Tables.Add("sms_sendout_info");
sda.Fill(ds);
sda.Update(ds,"sms_sendout_info");
}
catch (Exception err)
{
throw new ApplicationException(err.Message); } }
http://community.csdn.net/Expert/topic/4953/4953172.xml?temp=.912594如何将DataGrid中的动态数据“添加”到数据库表中?
http://community.csdn.net/Expert/topic/4968/4968579.xml?temp=.4478876
{
RightSet pscpm_right = new RightSet();
_adapter.SelectCommand = GetSelectCommand();
_adapter.Fill(pscpm_right);
return pscpm_right;
}private SqlCommand GetSelectCommand()
{
if(_selectCmd == null)
{
_selectCmd = new SqlCommand("SELECT guid, UserId, ModuleId, ModuleName, ViewRight, EditRight FROM pscpm_right");
_selectCmd.Connection = new SqlConnection(DataCommon.ConnectionString);
}
return _selectCmd;
}
{
try
{
_adapter.InsertCommand = GetInsertCommand();
_adapter.UpdateCommand = GetUpdateCommand();
_adapter.DeleteCommand = GetDeleteCommand();
_adapter.Update(pscpm_right);
return true;
}
catch
{
return false;
}
}
private SqlCommand GetInsertCommand()
{
if(_insertCmd == null)
{
_insertCmd = new SqlCommand();
_insertCmd.CommandText = "INSERT INTO pscpm_right(guid, UserId, ModuleId, ModuleName, ViewRight, EditRight,ProjectUID) " +
"VALUES (@guid, @UserId, @ModuleId, @ModuleName, @ViewRight, @EditRight,@ProjectUID) ";
_insertCmd.Connection = new SqlConnection(DataCommon.ConnectionString);
_insertCmd.Parameters.Add(new SqlParameter("@guid", System.Data.SqlDbType.VarChar, 38, "guid"));
_insertCmd.Parameters.Add(new SqlParameter("@UserId", System.Data.SqlDbType.VarChar, 38, "UserId"));
_insertCmd.Parameters.Add(new SqlParameter("@ModuleId", System.Data.SqlDbType.VarChar, 3, "ModuleId"));
_insertCmd.Parameters.Add(new SqlParameter("@ModuleName", System.Data.SqlDbType.VarChar, 50, "ModuleName"));
_insertCmd.Parameters.Add(new SqlParameter("@ViewRight", System.Data.SqlDbType.VarChar, 1, "ViewRight"));
_insertCmd.Parameters.Add(new SqlParameter("@EditRight", System.Data.SqlDbType.VarChar, 1, "EditRight"));
_insertCmd.Parameters.Add(new SqlParameter("@ProjectUID", System.Data.SqlDbType.VarChar, 38, "ProjectUID"));
}
return _insertCmd;
}
private SqlCommand GetUpdateCommand()
{
if(_updateCmd == null)
{
_updateCmd = new SqlCommand();
_updateCmd.CommandText = "UPDATE pscpm_right SET UserId = @UserId, ModuleId = @ModuleId, ModuleName = @ModuleName, ViewRight = @ViewRight, EditRight = @EditRight WHERE guid = @guid";
_updateCmd.Connection = new SqlConnection(DataCommon.ConnectionString);
_updateCmd.Parameters.Add(new SqlParameter("@guid", System.Data.SqlDbType.VarChar, 38, "guid"));
_updateCmd.Parameters.Add(new SqlParameter("@UserId", System.Data.SqlDbType.VarChar, 38, "UserId"));
_updateCmd.Parameters.Add(new SqlParameter("@ModuleId", System.Data.SqlDbType.VarChar, 3, "ModuleId"));
_updateCmd.Parameters.Add(new SqlParameter("@ModuleName", System.Data.SqlDbType.VarChar, 50, "ModuleName"));
_updateCmd.Parameters.Add(new SqlParameter("@ViewRight", System.Data.SqlDbType.VarChar, 1, "ViewRight"));
_updateCmd.Parameters.Add(new SqlParameter("@EditRight", System.Data.SqlDbType.VarChar, 1, "EditRight"));
}
return _updateCmd;
}
private SqlCommand GetDeleteCommand()
{
if(_deleteCmd == null)
{
_deleteCmd = new SqlCommand("DELETE FROM pscpm_right WHERE guid = @guid");
_deleteCmd.Connection = new SqlConnection(DataCommon.ConnectionString);
_deleteCmd.Parameters.Add(new SqlParameter("@guid", System.Data.SqlDbType.VarChar, 38, "guid"));
}
return _deleteCmd;
}
private SqlCommand GetSelectCommand()
{
if(_selectCmd == null)
{
_selectCmd = new SqlCommand("SELECT guid, UserId, ModuleId, ModuleName, ViewRight, EditRight FROM pscpm_right");
_selectCmd.Connection = new SqlConnection(DataCommon.ConnectionString);
}
return _selectCmd;
}
关键是设定sqldataadapter的selectcommand,insertcommand,updatecommand,deletecommand属性,可以用sqlcommandbuilder自动生成,它生成的是全匹配更新的,也可以仿照它生成的写,如只根据主键更新