在表格控件Spread(类似DataGird)
有这样一组数据:
字段 字段 字段
1 A a
2 B b
3 C c
现在需要向 DataBase db1 的 Table1 和 DataBase db2 的 Table2
中插入数据。插入结果如下:
Table1 Table2
1 A 1 a
2 B 2 b
3 C 3 c 要求 用C# 将这组数据一次性插入, 有用SQL语句的时候改用存贮过程。
有这样一组数据:
字段 字段 字段
1 A a
2 B b
3 C c
现在需要向 DataBase db1 的 Table1 和 DataBase db2 的 Table2
中插入数据。插入结果如下:
Table1 Table2
1 A 1 a
2 B 2 b
3 C 3 c 要求 用C# 将这组数据一次性插入, 有用SQL语句的时候改用存贮过程。
解决方案 »
- sql server 2005小问题
- 大虾们啊我用的是VS2010C#,可是我的Timer控件不好用啊。
- label.text的值??
- 频繁查询数据库,怎么保证整个系统的性能?
- 用C#开发桌面程序时MapInfo和MapPoint大家选择那一个?
- 一个学校时期的算法,刚好这边可以用上,现在看大家用什么方法可以最快搞掂?
- 如何判读c#泛型方法传入参数的类型
- 请名师
- 我在ComboBox中放了两列从SqlServer中取出来的数据,现在我想在ComboBox中把其中一列的被选择的数据找出来,(我是用来作查询条件),怎么写?
- 请问如何获取数据库路径
- C# 有关串口问题??
- 想弄一个自己的服务器,运行一个网站.请问大家服务器买完了后需要怎么弄才能运行,需要什么手续?网通,电信……
for(int i = 0 ; i< datagrid.rows.count ; i ++ )
{
a += "insert into table1(aa)values(" + datagrid.rows[i][1].value ");"
a += "insert into table2(bb)values(" + datagrid.rows[i][2].value ");"
}
差不多就这个意思了。
调用你那个存储过程名字。
要是写循环来逐条插入的话:
要保证:
1: 1 A a 在1 A 插入 Table1 的同时将 1 a 插入 Table2 (事务处理)
2 : 还要同时将这3条数据插入到2各表中,如果一条出错,其他全部删除。
sb.Append("1 c1,'A' c2,'a' c3")
sb.Append("2,'B','b'")
sb.Append("3,'C','c'")string sql="INSERT db1..table1(f1,f2) SELECT c1,c2 FROM (" + sb.ToString() + ") x;"
sql += "INSERT db2..table2(f1,f2) SELECT c1,c3 FROM (" + sb.ToString() + ") x;"cmd.Exe..(sql);
try
{
链接数据库1
插入数据1
连接数据库2
插入数据2
}
catch
{rollback();}
事务结束
StringBuilder sb=new StringBuilder();
sb.Append("SELECT 1 c1,'A' c2,'a' c3")
sb.Append("UNION ALL SELECT 2,'B','b'")
sb.Append("UNION ALL SELECT 3,'C','c'")string sql="INSERT db1..table1(f1,f2) SELECT c1,c2 FROM (" + sb.ToString() + ") x;"
sql += "INSERT db2..table2(f1,f2) SELECT c1,c3 FROM (" + sb.ToString() + ") x;"cmd.Exe..(sql);
有这样一组数据:
TableBase:
字段1 字段2 字段3
1 A a
2 B b
3 C c
现在需要向 DataBase db1 的 Table1 和 DataBase db2 的 Table2
中插入数据。插入结果如下:
Table1 Table2
1 A 1 a
2 B 2 b
3 C 3 c 要求 用C# 将这组数据一次性插入, 有用SQL语句的时候改用存贮过程
================================================================
insert into Table1 select 字段1,字段2 from TableBase
go
insert into Table1 select 字段1,字段3 from TableBase
insert into Table1 select 字段1,字段2 from TableBase
go
insert into Table1 select 字段1,字段3 from TableBase这样应该会在数据库中必须有这样一个TableBase做为中转有更好的方法没?
string sql="";
for(int i = 0 ; i < datagrid.rows.count ; i ++ )
{
sql +="insert into table1 select '"+datagrid.rows[i]["字段1"].value+"','" datagrid.rows[i]["字段1"].value+"' go";
sql +="insert into table1 select '"+datagrid.rows[i]["字段2"].value+"','" datagrid.rows[i]["字段2"].value+"' go";
}
只执行了一个sql语句,
你怕出异常的话 加一个事务就没问题了.
大家帮忙看下。
branches.xml中存有branches,taxrates的数据,
通过下面程序对branches,taxrates进行更新。SqlConnection conn=new SqlConnection(strcon);
SqlTransaction st;
conn.Open();
st=conn.BeginTransaction();
SqlCommand comm=conn.CreateCommand();
comm.Transaction=st;
comm.CommandText="selectFrombranches"; //存储过程名
comm.CommandType=CommandType.StoredProcedure; DataSet ds =new DataSet();
ds.ReadXml("branches.xml");
SqlDataAdapter da=new SqlDataAdapter(comm);
SqlCommandBuilder scb=new SqlCommandBuilder(da);
da.Update(ds,"branches");
comm.CommandText="selectFromTable";
comm.CommandType=CommandType.StoredProcedure;
da=new SqlDataAdapter(comm);
scb=new SqlCommandBuilder(da);
da.Update(ds,"taxrates");
st.Commit();