多行数据提交相关
前两天做关于数据库多行提交的问题,现把其中的一些点列出来说一下,现以多行添加为例来介绍。
多行提交,肯定就是要使用数组,首先要把添加的多行数据更新到DataTable里,然后使用DataTable的GetChanges()函数来获得改变的行,把每一列的信息存放到定义好的数组里面去,然后通过与数据库之前的交互将多行数据循环添加到后台。
现在结合代码具体来介绍一下。
- 写了一行数据的时候就新建一行,并添加到DataTable里
1 DataRow row = this.is_parts.NewRow(); 2 row["PARTS_NAME"] = txtName.Text; 3 row["TYPE_NAME"] = cboSpcfc.Text; 4 row["PARTS_DATE"] =dtp.Value.Date ; 5 this.is_parts.Rows.Add(row);
- 提交多行数据的时候,建数组,生成参数
string[] parts_name = new string[rowCount];
for (int i = 0; i != rowCount; i++) { parts_name[i] = parts_lists.Rows[i][1].ToString(); }
OracleParameter para_name = new OracleParameter("in_name", OracleDbType .Char ); para_name.Direction = ParameterDirection.Input; para_name.CollectionType = OracleCollectionType.PLSQLAssociativeArray; para_name.Value = parts_name; cmd.Parameters.Add(para_name);
然后就可以执行数据库操作了。其中有些比如参数类型不一至容易忽略的问题,一定要对照好