通过dataset中的talbe的column类型反赋值给sqlparameter

问题描述

用意如下:winfor环境,C#编程,通过SqlCommand向数据库插入记录,因tabler的column很多,因此使用下述的SqlParametersp1=newSqlParameter("@p1",SqlDbType.TinyInt)之关的语句之多,麻烦。故想结合循环,直接用dataset中的table中column的数据类型赋值给sqlparameter.语句有点类型://=========================================================intcol_count=ds.Tables[0].Columns.Count;SqlCommandcmd=newSqlCommand(sql,sqlcon);SqlParameter[]sp=newSqlParameter[col_count];for(inti=1;i<col_count;i++){sp[i-1]=newSqlParameter();sp[i-1].ParameterName="@"+ds.Tables[0].Columns[i].ColumnName;sp[i-1].SqlDbType=ds.Tables[0].Columns[i].DataType;//请问这行为什么通不过?有什么好办法吗?请高手指教。sp[i-1].SourceColumn=ds.Tables[0].Columns[i].ColumnName;cmd.Parameters.Add(sp[i-1]);}

解决方案

解决方案二:
因为类型不一样一个是dqldbtype一个是datatype所以不能这么写
解决方案三:
只能一个一个写,有时候不能偷懒的
解决方案四:
类型转换看看
解决方案五:
或者干脆去掉sp[i-1].SqlDbType=ds.Tables[0].Columns[i].DataType;,应该不会有问题的

时间: 2024-08-21 21:57:33

通过dataset中的talbe的column类型反赋值给sqlparameter的相关文章

如何重新设置DataSet中的DataTable对象

对象 我们在一个DataSet中可以包含多个DataTable对象. DataSet myDataSet = new DataSet(); DataTable tableA = new DataTable("A"); DataTable tableB = new DataTable("B"); myDataSet.Tables.Add(tableA); myDataSet.Tables.Add(tableB); 这样在myDataSet中就包含了一个tableA和一

delphi-Delphi:cxGrid关联的DataSet中如果有Lookup字段时,反应非常慢,请高手指教!

问题描述 Delphi:cxGrid关联的DataSet中如果有Lookup字段时,反应非常慢,请高手指教! cxGrid关联的DataSet中如果有Lookup字段,数据记录大约在5百行左右,打开速度就特别慢. 比如: 在数据库中, 销售出库单中只有客户编号,即FCltCode,没有客户名称: 客户档案表中有客户编号FCode,客户名称FName, 在DataSet1中建立FCltName字段,为Lookup类型,通过FCltCode与FCode关联,显示FCltName. 在这种情况下,软件

DataSet中的数据在与GridView中绑定数据中间的转换

问题描述 我从数据库里读取一个字段,它的类型是int类型.然后我生成DataSet,但是我绑定到GridView上时,我想让他原本显示的数字换成文字,比如,DataSet.Rows[0]["Field1"]中的1,就显示为"一等",2就显示为"二等",各位能帮忙想个思路么..此问题关键就是字段中的数据类型为int类型,而我要显示的是string类型...在DataSet和最终显示的GridView控件中有一个转换的过程,不知能不能实现.. 解决方

100高分!如何让一个DataSet中生成两张表并对两个表进行计算!在线等!

问题描述 比如我用两个SQL语句从数据库中得到两个表的结果,如下:stringSQL_1="select*fromtable1whereid='abc'";stringSQL_2="select*fromtable2wherexuehao='2008'"; 得到以上两个表之后,我想通过一个DataSet装载这两个表:dt1和dt2:如果两个表中的其它数据不一样,但是有个相同的主键,我如何能够通过程序来对这两个表进行计算?计算好了之后再在一个DataGridView中

如何将dataset中的XML数据写入到DB2 v9.5的XML列中?

问题描述 问题描述如下:编程环境:.net2005数据库:db2v9.5如何将一个已经存在的XML文档写入到db2v9.5中去?或者先将XML文档读入DataSet中(很简单,大家不用在此浪费时间.),再从DataSet中写入到db2v9.5中去(可行吗?如果可行,如何实现?)?insertinttablename(id,contactinfo)values(1,文件名.xml);上面的insert语句可以在.net中实现吗?红色的部分不用具体数据,而是通过引用一个XML文件来向db2中写数据.

亲密接触ASP.Net(9) 在一个DataSet中储存多个数据表

在一个DataSet中储存多个数据表 我们在ASP中很多人习惯于使用RecordSet对象来操作数据库,但是RecordSet有一个的缺点就是一个RecordSet只能储存一个数据表,当我们需要操作多个表时,不得不在多个RecordSet中来回操作,虽然这些在使用习惯后也没有什么,但是对一个新手来说,这也是一个很麻烦人的事情.光是那些变量名就可以搞浑你,现在好了,在ASP.Net中,只需要一个DataSet就可以搞定一切.大大的方便了我们的程序.我们还是老样子,先看一段程序,再来细细讲解. <%

C#注册表编程示例二:在“新建”中添加自己的文件类型

下面的例子在桌面的右键快捷菜单中或在Windows资源管理器的"新建"中添加自己的文件类型.假设添加的是扩展名为".cs"的文件,说明文件为"cs files",默认文件的打开方式采用Windows中的写字板notepad.exe打开. 程序清单18-2: using System; using Microsoft.Win32; class RegTest { public static void Main() { RegistryKey key

DataSet中进行Join操作

我们知道在T-SQL查询中可以很方便地将两个甚至是多个表的数据进行连接(join)操作,其结果就是新的结果集将包含多个表的列数据. 如果是在 客户端的DataSet中,也希望实现这样的效果,那么需要怎么做呢? protected override void OnLoad(EventArgs e) { DataSet ds = PrepareDataSet(); gvCustomers.DataSource = ds.Tables[0]; gvOrders.DataSource = ds.Tabl

php中header设置常见文件类型的content-type

  这篇文章主要介绍了php中header设置常见文件类型的content-type的相关资料,需要的朋友可以参考下 在PHP中可以通过header函数来发送头信息,还可以设置文件的content-type,下面整理了一些常见文件类型对于的content-type值. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41