用OracleDataAdapter将DataTable写入Oracle数据库
2016-06-15 10:07
561 查看
今天用OracleDataAdapter把DataTable写入数据库研究了一天啊,头都晕了,老是报错:ORA-01008: 并非所有变量都已绑定,.........................现在好了,原来是OracleParameter少写了最后一项数据源列名,现将成果展示如下:
using System; using System.Configuration; using System.Data; using System.Data.OracleClient; using System.Collections; ...... ...... ...... public static int ExecuteDataTable(DataTable dt) { //创建一个连接对象 using (OracleConnection connection = new OracleConnection(ConnectionString)) { OracleDataAdapter OracleAdapter = new OracleDataAdapter(); //#region 查询 //OracleAdapter.SelectCommand = new OracleCommand(); //OracleAdapter.SelectCommand.CommandType = CommandType.Text; //OracleAdapter.SelectCommand.CommandText = "SELECT JSDM,JSMC,JSMS,SCBS,JSLXDM FROM HT_YHJS "; //OracleAdapter.SelectCommand.Connection = connection; //#endregion //////////////////////////////////////////////////////////////////////////// #region 添加 string insertSql = "INSERT INTO HT_YHJS (JSDM,JSMC,JSMS,JSLXDM) VALUES (:JSDM,:JSMC,:JSMS,:JSLXDM)"; OracleAdapter.InsertCommand = new OracleCommand(); OracleAdapter.InsertCommand.CommandType = CommandType.Text; OracleAdapter.InsertCommand.CommandText = insertSql; OracleParameter[] insertParms = { new OracleParameter(":JSDM", OracleType.VarChar, 6, "JSDM"), new OracleParameter(":JSMC", OracleType.VarChar, 20, "JSMC"), new OracleParameter(":JSMS", OracleType.VarChar, 120, "JSMS"), new OracleParameter(":JSLXDM", OracleType.Char, 10, "JSLXDM") }; OracleAdapter.InsertCommand.Parameters.AddRange(insertParms); OracleAdapter.InsertCommand.Connection = connection; #endregion #region 更新 string updateSql = "UPDATE HT_YHJS SET JSMC=:JSMC, JSMS=:JSMS, JSLXDM=:JSLXDM WHERE JSDM=:JSDM"; OracleAdapter.UpdateCommand = new OracleCommand(); OracleAdapter.UpdateCommand.CommandType = CommandType.Text; OracleAdapter.UpdateCommand.CommandText = updateSql; OracleParameter[] updateParms = { new OracleParameter(":JSMC", OracleType.VarChar, 20 , "JSMC"), new OracleParameter(":JSMS", OracleType.VarChar, 120, "JSMS"), new OracleParameter(":JSLXDM", OracleType.Char, 10, "JSLXDM"), new OracleParameter(":JSDM", OracleType.VarChar, 6, "JSDM") }; updateParms[0].IsNullable = false; OracleAdapter.UpdateCommand.Parameters.AddRange(updateParms); OracleAdapter.UpdateCommand.Connection = connection; #endregion #region 删除 string deleteSql = "DELETE FROM HT_YHJS WHERE JSDM=:JSDM"; OracleParameter[] deleteParms = { new OracleParameter(":JSDM", OracleType.VarChar, 6,"JSDM") }; OracleAdapter.DeleteCommand = new OracleCommand(); OracleAdapter.DeleteCommand.CommandType = CommandType.Text; OracleAdapter.DeleteCommand.CommandText = deleteSql; OracleAdapter.DeleteCommand.Parameters.AddRange(deleteParms); OracleAdapter.DeleteCommand.Connection = connection; #endregion int r = OracleAdapter.Update(dt); dt.AcceptChanges(); return r; } |
相关文章推荐
- oracle教程
- Oracle表空间和数据文件详解(二)
- Oracle表空间和数据文件详解(一)
- C#利用ODP.NET往oracle中高效插入百万数据
- oracle之function
- oracle之type
- Oracle开发之分析函数(Top/Bottom N、First/Last、NTile)
- Oracle开发之分析函数(Rank, Dense_rank, row_number)
- [ORACLE DATAGUARD] switchover的过程
- oracle 数据中文出现乱码 ???
- ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux Error: 2: No suc
- asp.net 连接oracle 数据库-OracleClient使用
- 免安装Oracle客户端软件-使用pl/sql配置登陆
- Oracle ASMM vs MSMM
- oracle patition 分区和索引
- oracle子接点与父节点上下级关系数据库查询语句,及联查询,
- ORACLE 笔记
- 卸载oracle11g client
- ORACLE表空间的使用情况
- pl/sql连接oracle配置