C#使用DataTable传递数据减少数据库访问打开关闭次数
2015-09-29 16:33
393 查看
public class mx_case_photo
{
private string db_url;
public mx_case_photo(string db_url)
{
this.db_url = db_url;
}
public mx_case_photo()
{
}
public int AddTable(DataTable dt)
{
int result=0;
using (MySqlConnection conn = new MySqlConnection(db_url))
{
conn.Open();
using (MySqlTransaction tran=conn.BeginTransaction())
{
try
{
for (int i = 0; i < dt.Columns.Count; i++)
{
StringBuilder sb = new StringBuilder();
sb.Append("INSERT INTO mxzu.mx_case_photo (city_id,case_id,title,photo,size,views,orderby,closed,clientip,dateline)");
sb.Append(" values(@city_id,@case_id,@title,@photo,@size,@views,@orderby,@closed,@closed,@clientip,@dateline)");
MySqlParameter[] sp ={
new MySqlParameter("@city_id",MySqlDbType.Int32),
new MySqlParameter("@case_id",MySqlDbType.Int32),
new MySqlParameter("@title",MySqlDbType.VarChar,50),
new MySqlParameter("@photo",MySqlDbType.Int32,225),
new MySqlParameter("@varchar",MySqlDbType.VarChar,50),
new MySqlParameter("@views",MySqlDbType.Int32),
new MySqlParameter("@orderby",MySqlDbType.Int32),
new MySqlParameter("@closed",MySqlDbType.Int32),
new MySqlParameter("@clientip",MySqlDbType.VarChar,50),
new MySqlParameter("@dateline",MySqlDbType.Int32)
};
sp[0].Value = dt.Columns[i]["city_id"];
sp[1].Value = dt.Columns[i]["case_id"];
sp[2].Value = dt.Columns[i]["title"];
sp[3].Value = dt.Columns[i]["photo"];
sp[4].Value = dt.Columns[i]["size"];
sp[5].Value = dt.Columns[i]["views"];
sp[6].Value = dt.Columns[i]["orderby"];
sp[7].Value = dt.Columns[i]["clientip"];
sp[8].Value = dt.Columns[i]["dateline"];
MySqlCommand comm = new MySqlCommand(sb.ToString(), conn);
comm.Parameters.AddRange(sp);
comm.Transaction = tran;
result = result + comm.ExecuteNonQuery();
}
tran.Commit();
}
catch (MySqlException e)
{
tran.Rollback();
throw e;
}
finally
{
conn.Close();
}
}
}
return result;
}
}
{
private string db_url;
public mx_case_photo(string db_url)
{
this.db_url = db_url;
}
public mx_case_photo()
{
}
public int AddTable(DataTable dt)
{
int result=0;
using (MySqlConnection conn = new MySqlConnection(db_url))
{
conn.Open();
using (MySqlTransaction tran=conn.BeginTransaction())
{
try
{
for (int i = 0; i < dt.Columns.Count; i++)
{
StringBuilder sb = new StringBuilder();
sb.Append("INSERT INTO mxzu.mx_case_photo (city_id,case_id,title,photo,size,views,orderby,closed,clientip,dateline)");
sb.Append(" values(@city_id,@case_id,@title,@photo,@size,@views,@orderby,@closed,@closed,@clientip,@dateline)");
MySqlParameter[] sp ={
new MySqlParameter("@city_id",MySqlDbType.Int32),
new MySqlParameter("@case_id",MySqlDbType.Int32),
new MySqlParameter("@title",MySqlDbType.VarChar,50),
new MySqlParameter("@photo",MySqlDbType.Int32,225),
new MySqlParameter("@varchar",MySqlDbType.VarChar,50),
new MySqlParameter("@views",MySqlDbType.Int32),
new MySqlParameter("@orderby",MySqlDbType.Int32),
new MySqlParameter("@closed",MySqlDbType.Int32),
new MySqlParameter("@clientip",MySqlDbType.VarChar,50),
new MySqlParameter("@dateline",MySqlDbType.Int32)
};
sp[0].Value = dt.Columns[i]["city_id"];
sp[1].Value = dt.Columns[i]["case_id"];
sp[2].Value = dt.Columns[i]["title"];
sp[3].Value = dt.Columns[i]["photo"];
sp[4].Value = dt.Columns[i]["size"];
sp[5].Value = dt.Columns[i]["views"];
sp[6].Value = dt.Columns[i]["orderby"];
sp[7].Value = dt.Columns[i]["clientip"];
sp[8].Value = dt.Columns[i]["dateline"];
MySqlCommand comm = new MySqlCommand(sb.ToString(), conn);
comm.Parameters.AddRange(sp);
comm.Transaction = tran;
result = result + comm.ExecuteNonQuery();
}
tran.Commit();
}
catch (MySqlException e)
{
tran.Rollback();
throw e;
}
finally
{
conn.Close();
}
}
}
return result;
}
}
相关文章推荐
- NavicatforMySQL 数据导入从excel导入数据到mysql
- mysql拒绝访问
- MariaDB,MySQL中存储过程的学习笔记
- win7 下如何完全卸载oracle
- oracle中sql执行性能关注点
- Oracle的基本查询
- ORA-29275:部分多字节字符
- SQL Server学习记录之数学函数
- mariadb乱码解决
- 数据库 - FMDB
- php中如何利用模糊查询,查询mongodb一个月内数据
- Sql积累
- 数据库中使用Blob处理二进制数据
- 5张图让你彻底理清数据库 ,数据源和连接池的关系
- mysql 命令大全
- sqlite3添加、修改列名
- Oracle中rownum用法详解
- SQL中的一些简单语法总结
- memcache学习使用
- 数据库sql语句举例(oracle10g)