用一个循环,循环的上限就是你要插入数据的条数。
然后在循环中这样:
/ if bal<p_amount then
-- if bal_rowcurbal < 0 then
budgetfail_flag:=p_budgetno||''||'该预算编号预算余额不够!';
-- exit;
ELSE/
可以用for 循环写入或使用数组写入,这里我用for做个例子,比如录入5条记录
html页代码如下(我没有做美化):
<html><head>
<meta >
建一个主库,保存不同帐号对应的数据库,然后在配置文件里面建好不同的数据库对应的连接字符串,第一次登录的时候查询主库找到对应的数据库,缓存到session里面,然后修改信息的时候就可以知道是该保存到哪个数据库了
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); } } } } }}
以上就是关于C#调用存储过程,存数据到oracle数据库,怎么实现把多行数据循环插入到数据库中。全部的内容,包括:C#调用存储过程,存数据到oracle数据库,怎么实现把多行数据循环插入到数据库中。、asp + HTML + accecc怎样实现在网页里录入多条数据后,点击保存后录入的每条数据都保存到数据库里、大家好,我想问一下 多网站多数据库使用同一个后台管理,怎么实现保存到不同的用户数据库上面去,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)