各位大神,帮帮忙啊。
小弟给想用这个方法来解决给数据库直接插入dataTable的一个表集合数据。

解决方案 »

  1.   

    http://09105106.blog.163.com/blog/static/248357820109301259968/
      

  2.   

    能直接插入datatable么? 需要自己根据datatable拼写sql吧
      

  3.   

    可以先把数据放到一个List的数据模型中,再将模型传入然后用sql语句插入到表中
      

  4.   

    lz:2楼帮你搜索的这个帖子很好,你仔细研究,完全解决你的问题
       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;
            }