数据批量存入数据库

问题描述

我有100个Textbox的信息要提交到数据库中有没有循环语句可以批量提交不需要一行代码提交一个数据

解决方案

解决方案二:
你也真的可以,100个,干嘛不用datagrid?
解决方案三:
http://topic.csdn.net/u/20111128/09/bcd9d391-a292-4f9a-9e1a-81155131fb3c.html?38859
解决方案四:
引用1楼denqh的回复:

你也真的可以,100个,干嘛不用datagrid?

LZ可能是一个修改页面吧
解决方案五:
sql中用stringbuild的拼接
解决方案六:
一行一行放进去肿么啦?
解决方案七:
我说的存入数据库是存入界面上录入的信息比如界面上有100个这样的textbox:姓名【】性别【】等等。。。
解决方案八:
///<summary>///带事务的批量操作数据。///</summary>///<paramname="sqlInsert">SQL</param>///<returns>操作是否成功</returns>publicstaticboolOperateDatasWithTransaction(List<string>sqlList){OracleConnectionmyConnection=newOracleConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnStrOrcl"]);myConnection.Open();OracleCommandmyCommand=myConnection.CreateCommand();OracleTransactionmyTrans;//StartalocaltransactionmyTrans=myConnection.BeginTransaction(IsolationLevel.ReadCommitted);//AssigntransactionobjectforapendinglocaltransactionmyCommand.Connection=myConnection;myCommand.Transaction=myTrans;try{foreach(stringiteminsqlList){myCommand.CommandText=item;myCommand.ExecuteNonQuery();}myTrans.Commit();returntrue;}catch(Exception){myTrans.Rollback();returnfalse;}finally{myConnection.Close();}}

解决方案九:
看看有没有比较简单的方法么
解决方案十:
用事务控制
解决方案十一:
不一行一行放怎么放啊?数据库它处理也是一行行处理的啊。批处理对你来说是透明的啊。类似于在宏观上并行,微观上串行的道理哦。我晕啊啊啊啊啊啊啊啊,一口吃不完的,要分开来吃,一口一口地吃啊
解决方案十二:
该回复于2011-11-28 14:03:15被版主删除
解决方案十三:
10楼有点误解我的意思了我的意思是把若干的信息用一整段代码完成存入,而不是一行代码存入一个信息。
解决方案十四:
做软件做到你这样,我真的有点不明白了,为什么要用100个textbox,用这么多textbox你保存语句真是有得你拼了。
解决方案十五:
问题就是有那么多的textbox要存入啊。。。所以就想问问有没有啥方法
解决方案:
.......................................List<string>ooxx=newList<string>();。。。。aa//待处理数据for(inti=0;i<100;i++){ooxx.Add(@"insertintotbvalues('"+aa[i]+"')");}OperateDatasWithTransaction(ooxx);.................,...........
解决方案:
不行你扁我
解决方案:
15楼的这个ooxx是亮点。。。
解决方案:
引用17楼andyha2008的回复:

15楼的这个ooxx是亮点。。。

啥亮点啊啊啊啊啊啊啊
解决方案:
我的回复都被鹳狸猿删了啊,
解决方案:
11楼呢?
解决方案:
引用20楼hhqsy的回复:

11楼呢?

11楼去火星度假了~
解决方案:
引用21楼andyha2008的回复:

引用20楼hhqsy的回复:11楼呢?11楼去火星度假了~

解决方案:
研究表明,批量操作数据时,为了数据的完整性事务是必需的。
解决方案:
该回复于2011-11-28 15:44:43被版主删除
解决方案:
你去查查有关BCP的东西,网上不少。之不用BCP的时候,排错有点麻烦,另外数据库一旦增、删、修改了字段之后,你的程序就需要修改
解决方案:
字符串的每个sql用分号分隔即可,SqlServer和Oracle都支持stringsql=@"insertxxx;insertxxx;updatexxx;deletexxx;";
解决方案:
可以用事务来做,具体代码参考。DataSetdt=newDataSet();SqlConnectioncon=newSqlConnection(Configurations.Conn);con.Open();SqlTransactionstion=con.BeginTransaction(IsolationLevel.ReadCommitted);try{SqlDataAdaptersdp=newSqlDataAdapter();SqlCommandcommselect=newSqlCommand();commselect.Connection=con;commselect.CommandText="selectpassword,Names,Address,Pid,ImagefromUsers";sdp.SelectCommand=commselect;//首先要指定selectitem,并且字段要指定清楚,和insert字段个数和名称一致SqlCommandBuilderscom=newSqlCommandBuilder(sdp);sdp.SelectCommand.Transaction=stion;sdp.Fill(dt,"Users");DataTabledts=dt.Tables["Users"].Clone();DataRowdr=null;for(inti=1;i<6;i++){dr=dts.NewRow();dr["Names"]="Jeep"+i.ToString();dr["password"]=i.ToString();dr["Address"]="第12"+i.ToString()+"街道";dr["Pid"]=i+8;dr["Image"]=null;dts.Rows.Add(dr);}//通过对表值的修改,实现方法Update(table)dts.AcceptChanges();foreach(DataRowrowindts.Rows)row.SetAdded();SqlParameter[]parsup=newSqlParameter[]{newSqlParameter("@Names",SqlDbType.VarChar,10,"Names"),newSqlParameter("@password",SqlDbType.VarChar,20,"password"),newSqlParameter("@Address",SqlDbType.VarChar,40,"Address"),newSqlParameter("@Pid",SqlDbType.Int,4,"Pid"),newSqlParameter("@Image",SqlDbType.Image,200,"Image")};SqlCommandcommins=newSqlCommand();commins.CommandText="InsertintoUsersvalues(@Names,@password,@Address,@Pid,@Image)";sdp.InsertCommand=commins;//insertcom语句sdp.InsertCommand.Transaction=stion;commins.Parameters.AddRange(parsis);SqlCommandBuildericom=newSqlCommandBuilder(sdp);Console.WriteLine(sdp.Update(dts));dts.AcceptChanges();}catch(SqlExceptionex){Console.WriteLine(ex.ToString());stion.Rollback();}stion.Commit();

解决方案:
这位xd说的是SqlBulkCopy,这玩意只能Insert,不能做别的事情引用25楼jy251的回复:

你去查查有关BCP的东西,网上不少。之不用BCP的时候,排错有点麻烦,另外数据库一旦增、删、修改了字段之后,你的程序就需要修改

解决方案:
他是一行,但字段有100个.类似INSERTINTOA(A1,A2,...,A100)VALUES('A1','A2',....,'A100')是吧!需要拼的是这么多字段.你可以将控件的名称定义与数据库列名一样,通过循环读取页面上(窗体)的所有控件,最后拼成SQL.如果界面上有不需要更插入的控件,则按一定的方式命名.如:A_A1表示A1字段,只要是A_开头的均是需要插入数据库的,而其他开头的则不需要.不过再怎么会有上百个字段呢?即便有一条信息有这么多的字段,也应该分多个表来装载,按类别来分,这样根据不同需要查询时才会有较好的性能呀.
解决方案:
新来的,希望能多多学习!
解决方案:
databindMS自带的控件也有这个了,可以去搞下
解决方案:
该回复于2011-11-29 09:07:41被版主删除
解决方案:
在数据库里写个事务,将值传进去调用事务
解决方案:
该回复于2011-11-29 09:08:32被版主删除
解决方案:
可以用一个for循环把那些写成一个插入多行的sql语句啊,这样就与数据库交互一次就完成了。语法:insert表(列,列,列)select值1,值2,值3union值1,值2,值3

时间: 2024-10-23 01:18:31

数据批量存入数据库的相关文章

怎么将datatable中的数据批量存入数据库

问题描述 publicstaticvoidAdd_Order(DataTabletbl){SqlConnectioncon=GetConnect();SqlCommandcom=newSqlCommand("insertinto[Order](Pro_Name,Pro_Num,Customer_Name,Data_Out)values(@proname,@num,@cname,@dataout)",con);com.Parameters.Add("proname",

怎么将datagridview中的数据导入到datatable中,并且批量存入数据库

问题描述 //从datagridview中获取数据,导入到datatable中privatevoidbutton3_Click(objectsender,EventArgse){DataTabledt=newDataTable();for(inti=0;i<dataGridView2.Rows.Count;i++){DataRowdr=dt.NewRow();for(intj=0;j<dataGridView2.Columns.Count;j++){dr[j]=dataGridView2.Ro

easyui-关于easyUI里面的Datebox ,新建一条数据并存入数据库,有一个字段关于时间

问题描述 关于easyUI里面的Datebox ,新建一条数据并存入数据库,有一个字段关于时间 关于easyUI里面的Datebox ,新建一条数据并存入数据库,有一个字段关于时间,用Datebox,但是在调用后台增加方法的时候,却显示获取不到Datebox中的值 该如何解决额 解决方案 http://blog.sina.com.cn/s/blog_866c5a5d01019zo3.html

.net怎样吧excel的数据批量导入数据库啊

问题描述 我要代码,急急急! 解决方案 解决方案二:10分...解决方案三:数据库点一点不就行了解决方案四:用OLEDB链接EXCEL,然后进行导入.解决方案五:1.先上传.xls2.读取.xls然后再构造写入sqlserver的sql:3.执行sql,写入数据到sqlserver解决方案六://thiscodeisfromalifeprojectinmyproject:stringConnectionStr="Provider=Microsoft.Jet.OLEDB.4.0;"+&q

xml数据存入数据库的解决办法

xml|解决|数据|数据库     当我们要把xml格式的数据存到数据库中.通常的办法是解析xml文件,读出xml中的数据类型并根据它创建数据库表和表之间的结构,读出xml中的数据,存入到数据库之中. 在读nodeType是要注意二个问题: 1.读某个节点数据类型可以对上一个节点的孩子,或直接使本节点的类型,只不过要严格注意定位正确,不要混淆. 例:link.getElementsByTagName("link").item(0).getFirstChild().getNodeType

前台ajax提交数据,后台接受,存入数据库

问题描述 前台ajax提交数据,后台接受,存入数据库 "{"1":{"top":125,"left":376,"process_to":[]},"2":{"top":339,"left":378,"process_to":[]},"3":{"top":280,"left":840

c#实现批量插入数据到sql数据库表中,怎么做到跳过插入失败的数据,继续插入

问题描述 c#实现批量插入数据到sql数据库表中,怎么做到跳过插入失败的数据,继续插入 c#实现批量插入数据到sql数据库表中,怎么做到跳过插入失败的数据,继续插入. 并且报错,哪几天数据失败了.和失败的原因. 我现在是可以生成一个把一个数据库表的数据导入到另一个数据库表中.但是呢,有些数据由于某个字段过长无法导入成功,而导致所有的都无法导入.直接造成导入失败.我 想过滤掉那条不成功的继续导入.不至于都导入不成功.急! 想和好久也没解决.网上也没找到说法 解决方案 数据库表插入数据失败数据库批量

servlet中文数据存入数据库为乱码的解决办法

今天在测试从web端存入数据到数据库,结果存入数据库的中文数据出现乱码.当然读取出来的时候也是乱码 乱码的原因是tomcat的内部编码格式iso8859-1导致.  而在每个jsp页面设置的utf-8仅仅是该页面显示是用utf-8,而你用form表单提交的数据仍然是iso8859-1.所以要在接受form表单数据的servlet页面加上一行代码request.setCharacterEncoding("utf-8"). 为了避免每页都要写request.setCharacterEnco

easyUI中将三个输入框的数据顺序拼接在一起存入数据库形成一个字段

问题描述 easyUI中将三个输入框的数据顺序拼接在一起存入数据库形成一个字段 将三个输入框的内容按顺序拼接在一起形成一个字段该如何实现,例如这项数据的年份是可选的,2015年高考语文,期中2015是用下拉列表实现选择的,语文也是下拉列表实现的,最后存储到数据库中是一条数据,就是2015年高考语文 解决方案 循环遍历,拼接字符串,中间加上逗号. 解决方案二: 为了以后方便取值,你可以随便加一些符号分隔开,比如逗号或者问号什么的,这样以后取出来按这个符号split一下就又得到三个字段了 解决方案三