c# winform DataGridView添加一行,添加数据后,保存到数据库

c# winform DataGridView添加一行,添加数据后,保存到数据库,第1张

点击添加,实例化一个DataGridView的行对象DataRow

然后把这个对象添加到DataGridView中,你的DataGridView要是可编辑状态,然后编辑数据,点保存循环读取DataGridView的行数据,存到实体类中,在通过后台SQL保存到数据库

C#插入多条数据到oracle数据库:

实例代码:

using SystemData;

using SystemDrawing;

using SystemText;

using SystemWindowsForms;

using SystemIO;

using SystemDataOleDb;

using SystemData;

using SystemDataOracleClient;

using SystemText;

namespace ExportInfo

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        /// <summary>

        /// 打开对话框

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void button1_Click(object sender, EventArgs e)

        {

            openFileDialog1Filter = "电子表格(xls)|xls";

            openFileDialog1ShowDialog();//打开对话框

            thistextBox1Text = openFileDialog1FileName;//得到文件=路径+名称

        }

        /// <summary>

        /// 点击导入文件到数据库中

        /// 代云超

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void button2_Click(object sender, EventArgs e)

        {

            try

            {

                DataSet ds = ImportExcel(thistextBox1Text);//将excel的对象先放到ds 中

                if (ds != null)

                {

                    if (dsTables[0]RowsCount > 0)//如果ds中是有值的话 执行下面的 *** 作

                    {

                        if (ExportInfo(ds))

                        {

                            MessageBoxShow("导入数据库成功!");

                        }

                        else

                        {

                            MessageBoxShow("导入数据库失败!");

                        }

                    }

                }

            }

            catch

            {

                MessageBoxShow("导入数据库失败 请检查导入文件是否填写正确!");

            }

        }

        /// <summary>

        /// 导入文件的具体方法

        /// 代云超

        /// </summary>

        /// <param name="file">要导入的文件</param>

        /// <returns></returns>

        public static DataSet ImportExcel(string file)

        {

            FileInfo fileInfo = new FileInfo(file);

            if (!fileInfoExists) return null; string strConn = @"Provider=MicrosoftJetOLEDB40;Data Source=" + file + ";Extended Properties='Excel 80;HDR=NO;IMEX=1'";

            OleDbConnection objConn = new OleDbConnection(strConn);

            DataSet dsExcel = new DataSet();

            try

            {

                objConnOpen();

                string strSql = "select  from [Sheet1$]";

                OleDbDataAdapter odbcExcelDataAdapter = new OleDbDataAdapter(strSql, objConn);

                odbcExcelDataAdapterFill(dsExcel); return dsExcel;

            }

            catch (Exception ex)

            {

                throw ex;

            }

        }

        /// <summary>

        /// 这是将ds对象导入数据库的方法

        /// 代云超

        /// </summary>

        /// <returns>执行是否成功 如: 成功=true 失败=false</returns>

        public static bool ExportInfo(DataSet ds)

        {

            if (ds != null)

            {

                if (dsTables[0]RowsCount > 0)//如果ds中是有值的话 执行下面的 *** 作

                {

                    return Do(ds);//执行成功

                }

            }

            return false;//执行失败

        }

        public static bool Do(DataSet ds)

        {

            OracleConnection conNorthwind = new OracleConnection("Data Source=web1;User Id=UserName;Password=UserPassword;Integrated Security=no;");//链接字符串

            OracleCommand commandNorthwind = new OracleCommand();

            try

            {

                conNorthwindOpen();//打开数据库链接

                OracleTransaction tranNorthwind = conNorthwindBeginTransaction();//开始事务

                for (int i = 0; i < dsTables[0]RowsCount; i++)

                {

                    DataRow dr = dsTables[0]Rows[i];

                    OracleParameter[] parameters = null;//为了得到插入数据库的参数 定义参数对象 为空

                    string sql = GetSqlString(dr, out parameters);//执行sql -->用out关键字得到参数 赋到parameters对象上

                    //插入数据库中

                    PrepareCommand(commandNorthwind, conNorthwind, tranNorthwind, sql, parameters);

                    commandNorthwindExecuteNonQuery();//执行 *** 作

                }

                commandNorthwindTransactionCommit();//提交事务

                conNorthwindClose();//关闭数据库链接资源

                return true;

            }

            catch//如果有异常 不一定要捕捉异常 但要rollback事务

            {

                if (commandNorthwindTransaction != null && conNorthwind != null)

                {

                    commandNorthwindTransactionRollback();//rollback事务

                    conNorthwindClose();//关闭数据库链接

                }

                return false;

            }

        }

        /// <summary>

        /// 每一行信息插入数据库中

        /// </summary>

        /// <param name="dr">要插入的这一行ds-datarow对象</param>

        /// <returns>sql语句和用out关键字的参数数组对象</returns>

        public static string GetSqlString(DataRow dr, out OracleParameter[] parameters)

        {

            StringBuilder sb = new StringBuilder();

            sbAppend("INSERT INTO TEXT VALUES(:ID,:NAME)");

            parameters = new OracleParameter[] { new OracleParameter(":ID", ConvertToString(dr[0])), new OracleParameter(":NAME", ConvertToString(dr[1])) };

            return sbToString();//将sqlreturn出去

        }

        private static void PrepareCommand(OracleCommand cmd, OracleConnection conn, OracleTransaction trans, string cmdText, OracleParameter[] cmdParms)

        {

            PrepareCommand(cmd, conn, trans, cmdText, CommandTypeText, cmdParms);

        }

        //参数设定  此方法被重载 

        private static void PrepareCommand(OracleCommand cmd, OracleConnection conn, OracleTransaction trans, string cmdText, CommandType cmdType, OracleParameter[] cmdParms)

        {

            if (connState != ConnectionStateOpen)

            {

                connOpen();

            }

            cmdConnection = conn;

            cmdCommandText = cmdText;

            if (trans != null)

            {

                cmdTransaction = trans;

            }

            cmdCommandType = cmdType;  // CommandTypeText;//cmdType;

            if (cmdParms != null)

            {

                foreach (OracleParameter parameter in cmdParms)

                {

                    if (parameter != null)

                    {

                        if (parameterValue == null)

                        {

                            parameterValue = DBNullValue;

                        }

                        cmdParametersAdd(parameter);

                    }

                }

            }

        }

    }

}

晕!

你写sql在1秒钟也不可能插入10000条!

不过你可以写一个循环

for(int i=1;i<=10000;i++)

{

string strsql="insert into test test_id values('"+i+"')";

}

sql都帮你写好了!

其他的就更简单了!

无非是执行一个

sqlcommandexenonquery的方法!

以上就是关于c# winform DataGridView添加一行,添加数据后,保存到数据库全部的内容,包括:c# winform DataGridView添加一行,添加数据后,保存到数据库、C# winform 插入多条数据到oracle数据库!!!、C#的winform怎样能在1秒内向数据库中添加10000条数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/sjk/9599073.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存