.net之旅-批量插入数据库(45)
来源:互联网 发布:隐藏软件的工具 编辑:程序博客网 时间:2024/05/16 09:10
批量数据处理有事务处理的方式。而本文使用的是DataTable数据集方式来更新。本文实现的是将选中的用户功能listNum[]插入到用户名为userId的userFunction表。
1 数据库userFunction表:
字段名 变量类型 字长
UserId varchar 15
FunctionId int 4
sn int 4
其中sn是主键 自增
2 相关代码:
/**//// <summary>
/// 批量插入数据库
/// </summary>
/// <param name="userId"></param>
/// <param name="listNum"></param>
private void InsertUserRights(String userId, String[] listNum)
...{
DeleteUserRights(userId);
// 新建一个DataTable的实例dt
DataTable dt = new DataTable();
// 声明一个DataRow实例dr
DataRow dr;
// 说明DataTable表里的包含哪些字段
dt.Columns.Add(new DataColumn("UserId", typeof(string)));
dt.Columns.Add(new DataColumn("FunctionId", typeof(Int32)));
foreach (string listValue in listNum)
...{
if (listValue.Length != 0)
...{
//i = Convert.ToInt16(listValue);
// 用DataTable的NewRow方法新建一个DataRow对象的实例dr
dr = dt.NewRow();
dr[0] = userId;
dr[1] = listValue;
dt.Rows.Add(dr);
}
}
SqlConnection conn = DbConn.GetConn();
SqlCommand cmd = new SqlCommand("Insert Into userFunction(Userid,FunctionId) values(@UserId,@FunctionId)");
SqlDataAdapter adapt = new SqlDataAdapter("select * from userFunction where 1=0", conn);
SqlCommandBuilder sqlCmdBud = new SqlCommandBuilder(adapt);
SqlParameter UserIdParam = new SqlParameter("@UserId",SqlDbType.VarChar,15);
SqlParameter FunctionIdParam = new SqlParameter("@FunctionId",SqlDbType.Int,4);
adapt.Fill(dt);
adapt.SelectCommand.Parameters.Add(UserIdParam);
adapt.SelectCommand.Parameters.Add(FunctionIdParam);
adapt.SelectCommand.Parameters["@UserId"].SourceColumn = "UserId";
adapt.SelectCommand.Parameters["@FunctionId"].SourceColumn = "FunctionId";
adapt.UpdateCommand = sqlCmdBud.GetUpdateCommand();
if (dt != null)
...{
adapt.Update(dt);
}
}
/// 批量插入数据库
/// </summary>
/// <param name="userId"></param>
/// <param name="listNum"></param>
private void InsertUserRights(String userId, String[] listNum)
...{
DeleteUserRights(userId);
// 新建一个DataTable的实例dt
DataTable dt = new DataTable();
// 声明一个DataRow实例dr
DataRow dr;
// 说明DataTable表里的包含哪些字段
dt.Columns.Add(new DataColumn("UserId", typeof(string)));
dt.Columns.Add(new DataColumn("FunctionId", typeof(Int32)));
foreach (string listValue in listNum)
...{
if (listValue.Length != 0)
...{
//i = Convert.ToInt16(listValue);
// 用DataTable的NewRow方法新建一个DataRow对象的实例dr
dr = dt.NewRow();
dr[0] = userId;
dr[1] = listValue;
dt.Rows.Add(dr);
}
}
SqlConnection conn = DbConn.GetConn();
SqlCommand cmd = new SqlCommand("Insert Into userFunction(Userid,FunctionId) values(@UserId,@FunctionId)");
SqlDataAdapter adapt = new SqlDataAdapter("select * from userFunction where 1=0", conn);
SqlCommandBuilder sqlCmdBud = new SqlCommandBuilder(adapt);
SqlParameter UserIdParam = new SqlParameter("@UserId",SqlDbType.VarChar,15);
SqlParameter FunctionIdParam = new SqlParameter("@FunctionId",SqlDbType.Int,4);
adapt.Fill(dt);
adapt.SelectCommand.Parameters.Add(UserIdParam);
adapt.SelectCommand.Parameters.Add(FunctionIdParam);
adapt.SelectCommand.Parameters["@UserId"].SourceColumn = "UserId";
adapt.SelectCommand.Parameters["@FunctionId"].SourceColumn = "FunctionId";
adapt.UpdateCommand = sqlCmdBud.GetUpdateCommand();
if (dt != null)
...{
adapt.Update(dt);
}
}
测试通过
- .net之旅-批量插入数据库(45)
- java批量插入数据库之批量处理
- 批量插入数据库之Transaction测试
- Android数据库操作之--批量插入
- 在ASP.NET中,向数据库批量插入数据
- 在ASP.NET中,向数据库批量插入数据
- 在ASP.NET中,向数据库批量插入数据
- 在ASP.NET中,向数据库批量插入数据
- 在ASP.NET中,向数据库批量插入数据
- 在ASP.NET中,向数据库批量插入数据
- ASP.NET中,向数据库批量插入数据
- C#.net中批量插入数据到数据库中
- ASP.NET中实现批量插入oracle数据库
- .net批量向Oracle数据库中插入数据
- C# .net 批量插入数据库的两种方法
- ADO.Net实现批量插入数据库(SqlBulkCopy处理)
- .net 批量插入sqlite
- DataTable 批量插入数据库
- 对CE-Updater实现的思考
- 纯数组奇偶幻方
- Test
- 关于软件和软件工程师
- .net之旅-分隔符的正则表达式处理 (44)
- .net之旅-批量插入数据库(45)
- 产品开发之大忌讳
- 开发人员行走Unix的随身四艺
- 使用JMock来辅助你的单体测试
- 山雨欲来风满楼
- 用c编写cgi程序
- 部门ID 员工ID 点数
- 比如有个表A,表中有100000条记录,他有两个字段b,c,我现在想根据b排序来取第100到200条数据
- 根据b排序来取第100到200条数据