您的位置:首页 > 数据库 > Oracle

用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;

        }
   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: