数据库域的动态插入

原创 2007年10月09日 11:24:00

稍后解释

protected void ButtonXinZen_Click(object sender, EventArgs e)
    
...{
        
// 设置传递参数 
        String fieldParam = "";
        
for (int fieldCount = 0; fieldCount < ReportsFieldCount ; fieldCount++)
        
...{
            fieldParam 
= fieldParam + ":field" + fieldCount.ToString() + ",";
        }


        String sqlInsert 
= "INSERT INTO " + biaoMing + " VALUES(" + fieldParam + ")";

        OracleParameter[] parms 
= new OracleParameter[ReportsFieldCount];
        
for (int count = 0; count < ReportsFieldCount ; count++)
        
...{
            parms[count] 
= new OracleParameter();
        }

        
// 特殊列的处理
        parms[0].ParameterName = ":id";
        parms[
0].OracleType = OracleType.Char;
        parms[
0].Size = 32;
        parms[
0].Value = LabelZhuJian.Text.Trim();
        
// 编号设置
        parms[1].ParameterName = ":bh";
        parms[
1].OracleType = OracleType.Number;
        parms[
1].Size = 8;
        parms[
1].Value = Math.Ceiling(getMaxSeq() + 1.0);
        
// 从2开始
        int i = 2;
        GetTableInformation getTableInformation 
= new GetTableInformation();
        
// 获取表结构信息
        Hashtable tableInfor = getTableInformation.getTableInfor("baobiaoxinxi");
        
foreach (DictionaryEntry de in tableInfor)
        
...{
            String value 
= de.Value.ToString();
            
// 移调SN
            tableInfor.Remove("SN");
            
switch (value)
            
...{
                
case "CHAR":
                    parms[i].ParameterName 
= ":field" + i.ToString();
                    parms[i].OracleType 
= OracleType.Char;
                    parms[i].Size 
= 32;
                    parms[i].Value 
= "";
                    
break;

                
case "VARCHAR2":
                    parms[i].ParameterName 
= ":field" + i.ToString();
                    parms[i].OracleType 
= OracleType.VarChar;
                    parms[i].Size 
= 512;
                    parms[i].Value 
= "";
                    
break;

                
case "NUMBER":
                    parms[i].ParameterName 
= ":field" + i.ToString();
                    parms[i].OracleType 
= OracleType.Number;
                    parms[i].Size 
= 8;
                    parms[i].Value 
= 0;
                    
break;
            }

        }


        parms[ReportsFieldCount 
- 1].ParameterName = ":sn";
        parms[ReportsFieldCount 
- 1].OracleType = OracleType.Char;
        parms[ReportsFieldCount 
- 1].Size = 32;
        parms[ReportsFieldCount 
- 1].Value = System.Guid.NewGuid().ToString().Replace("-"""); 

        
/**///// 设置传递参数 
        //String fieldParam = "";
        
//for (int fieldCount = 2; fieldCount < ReportsFieldCount - 1; fieldCount++)
        
//{
        
//    fieldParam = fieldParam + ":field" + fieldCount.ToString() + ",";
        
//}
        
        
/**///// 插入数据库语句
        //String sqlInsert = "INSERT INTO "+ biaoMing + " VALUES(:id,:bh," + fieldParam + ":sn)";

        
/**///// 设置参数
        //OracleParameter[] parms = new OracleParameter[ReportsFieldCount];

        
//for (int count = 0; count <= ReportsFieldCount-1 ; count++)
        
//{
        
//    parms[count] = new OracleParameter();
        
//}
        /**///// ID设置
        //parms[0].ParameterName = ":id";
        
//parms[0].OracleType = OracleType.Char;
        
//parms[0].Size = 32;
        
//parms[0].Value = LabelZhuJian.Text.Trim();
        /**///// 编号设置
        //parms[1].ParameterName = ":bh";
        
//parms[1].OracleType = OracleType.Number;
        
//parms[1].Size = 8;
        
//parms[1].Value = Math.Ceiling(getMaxSeq() + 1.0);
        /**///// 其他域设置 从第3列开始 前面有编辑 和删除列
        //for (int fieldCount = 2; fieldCount < ReportsFieldCount - 1; fieldCount++)
        
//{
        
//    parms[fieldCount].ParameterName = ":field" + fieldCount.ToString();
        
//    parms[fieldCount].OracleType = OracleType.Char;
        
//    parms[fieldCount].Size = 32;
        
//    parms[fieldCount].Value = "";
        
//}
        /**///// 末尾的SN列
        //parms[ReportsFieldCount - 1].ParameterName = ":sn";
        
//parms[ReportsFieldCount - 1].OracleType = OracleType.Char;
        
//parms[ReportsFieldCount - 1].Size = 32;
        
//parms[ReportsFieldCount - 1].Value = System.Guid.NewGuid().ToString().Replace("-", ""); 

        OracleConnection conn 
= new OracleConnection(OracleHelper.DatabaseConnStr);

        conn.Open();
        OracleTransaction trans 
= conn.BeginTransaction(IsolationLevel.ReadCommitted);
        
try
        
...{
            OracleHelper.ExecuteNonQuery(trans, CommandType.Text, sqlInsert, parms);
            trans.Commit();
        }

        
catch (Exception ex)
        
...{
            trans.Rollback();
            ex.ToString();
        }

        
finally
        
...{
            conn.Close();
        }


        GridViewTianJia.EditIndex 
= -1;

        RecoveryGridView();
    }

 动态更新

 

/**//// <summary>
    
/// 行更新
    
/// </summary>
    
/// <param name="sender"></param>
    
/// <param name="e"></param>

    protected void GridViewTianJia_RowUpdating(object sender, GridViewUpdateEventArgs e)
    
...{
        
// 表头按顺序排放
        ArrayList tableHead = new ArrayList();

        
for (int m = 0; m < ReportsFieldCount-1 ; m++)
        
...{   // 3表示去除前面2列 + ID隐藏列
            tableHead.Add(GridViewTianJia.HeaderRow.Cells[m + 3].Text);
        }


        
// 设置参数
        OracleParameter[] parms = new OracleParameter[ReportsFieldCount - 1];

        
for (int count = 0; count < ReportsFieldCount - 1; count++)
        
...{
            parms[count] 
= new OracleParameter();
        }


        GetTableInformation getTableInformation 
= new GetTableInformation();
        
// 获取表结构信息
        Hashtable tableInfor = getTableInformation.getTableInfor(biaoMing);
        
// 移除SN
        tableInfor.Remove("ID");
        tableInfor.Remove(
"SN");

        String updateSqlParam 
= "";
        
int i = 0;
        
foreach (DictionaryEntry de in tableInfor)
        
...{
            String key 
= de.Key.ToString();
            String value 
= de.Value.ToString();

            
switch (value)
            
...{
                
case "CHAR":
                    parms[i].ParameterName 
= ":field" + tableHead.IndexOf(key).ToString();
                    parms[i].OracleType 
= OracleType.Char;
                    parms[i].Size 
= 32;
                    
break;

                
case "VARCHAR2":
                    parms[i].ParameterName 
= ":field" + tableHead.IndexOf(key).ToString();
                    parms[i].OracleType 
= OracleType.VarChar;
                    parms[i].Size 
= 512;
                    
break;

                
case "NUMBER":
                    parms[i].ParameterName 
= ":field" + tableHead.IndexOf(key).ToString();
                    parms[i].OracleType 
= OracleType.Number;
                    parms[i].Size 
= 8;
                    
break;
            }

            updateSqlParam 
= updateSqlParam + de.Key.ToString() + "=" + parms[i].ParameterName.ToString() + ",";
            i
++;
        }



        
// 插入数据库语句
        String sqlUpdate = "UPDATE " + biaoMing + " SET " + updateSqlParam;

        sqlUpdate 
= sqlUpdate.Remove(sqlUpdate.Length - 1+ " WHERE SN=:sn";

        
// 重新设置Value值
        for (int count = 0; count < ReportsFieldCount - 2; count++)
        
...{
            
// 3表示前面的2列 + 隐藏的ID列
            parms[count].Value = (((TextBox)(GridViewTianJia.Rows[e.RowIndex].Cells[count + 3].Controls[0])).Text.ToString().Trim());
            
            
// 对Number 进行转换 
            if (parms[count].OracleType == OracleType.Number)
            
...{
                parms[
0].Value = Decimal.Parse(parms[0].Value.ToString());
            }

        }

        
// SN设置
        parms[ReportsFieldCount - 2].ParameterName = ":sn";
        parms[ReportsFieldCount 
- 2].OracleType = OracleType.Char;
        parms[ReportsFieldCount 
- 2].Size = 32;
        parms[ReportsFieldCount 
- 2].Value = GridViewTianJia.DataKeys[e.RowIndex].Values[0].ToString().Trim();
        
        
// SN设置

        
/**/////String sqlUpdate = "UPDATE cxcs SET 编号=:bh,生产企业=:scqy,产品名称=:cpmc,计量单位=:jldw,生产量本年实际=:sclbnsj,生产量去年实际=:sclqnsj,"
        
////                    + "销售量本年实际=:xslbnsj,销售量去年实际=:xslqnsj,库存量年初库存=:kclnckc,库存量期末库存=:kclqmkc,平均售价本年实际=:pjsjbnsj, "
        
////                    + "平均售价去年实际=:pjsjqnsj,产销率本年实际=:cxlbnsj,产销率去年实际=:cxlqnsj,市场占有率本年实际=:sczylbnsj,"
        
////                    + "市场占有率去年实际=:sczylqnsj "
        
////                    + " WHERE SN=:sn";

        
////OracleParameter[] parms = {
        
////    new OracleParameter(":bh", OracleType.Number, 8),
        
////    new OracleParameter(":scqy", OracleType.VarChar, 512),
        
////    new OracleParameter(":cpmc", OracleType.VarChar, 512),
        
////    new OracleParameter(":jldw", OracleType.Char, 32),
        
////    new OracleParameter(":sclbnsj", OracleType.Char, 32),
        
////    new OracleParameter(":sclqnsj", OracleType.Char, 32),
        
////    new OracleParameter(":xslbnsj", OracleType.Char, 32),
        
////    new OracleParameter(":xslqnsj", OracleType.Char, 32),
        
////    new OracleParameter(":kclnckc", OracleType.Char, 32),
        
////    new OracleParameter(":kclqmkc", OracleType.Char, 32),
        
////    new OracleParameter(":pjsjbnsj", OracleType.Char, 32),
        
////    new OracleParameter(":pjsjqnsj", OracleType.Char, 32),
        
////    new OracleParameter(":cxlbnsj", OracleType.Char, 32),
        
////    new OracleParameter(":cxlqnsj", OracleType.Char, 32),
        
////    new OracleParameter(":sczylbnsj", OracleType.Char, 32),
        
////    new OracleParameter(":sczylqnsj", OracleType.Char, 32),
        
////    new OracleParameter(":sn", OracleType.Char, 32)
        
////  };

        
////// 重新设置Value值
        
////for (int count = 0; count < ReportsFieldCount - 2; count++)
        ////{
        
////    // 3表示前面的2列 + 隐藏的ID列
        
////    parms[count].Value = (((TextBox)(GridViewTianJia.Rows[e.RowIndex].Cells[count + 3].Controls[0])).Text.ToString().Trim());
        
////}
        
////parms[ReportsFieldCount - 2].Value = GridViewTianJia.DataKeys[e.RowIndex].Values[0].ToString().Trim();


        
//parms[0].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxBianHao")).Text.Trim();
        
//parms[1].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxShenChanQiYe")).Text.Trim();
        
//parms[2].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxChanPinMingChen")).Text.Trim();
        
//parms[3].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxJiLiangDanWei")).Text.Trim();
        
//parms[4].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxShenChanLiangBenNian")).Text.Trim();
        
//parms[5].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxShenChanLiangQuNian")).Text.Trim();
        
//parms[6].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxXiaoShouLiangBenNian")).Text.Trim();
        
//parms[7].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxXiaoShouLiangQuNian")).Text.Trim();
        
//parms[8].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxKuCunLiangNianChu")).Text.Trim();
        
//parms[9].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxKuCunLiangQiMo")).Text.Trim();
        
//parms[10].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxPingJunShouJiaBenNian")).Text.Trim();
        
//parms[11].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxPingJunShouJiaQuNian")).Text.Trim();
        
//parms[12].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxChanXiaoLvBenNian")).Text.Trim();
        
//parms[13].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxChanXiaoLvQuNian")).Text.Trim();
        
//parms[14].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxShiChangBenNian")).Text.Trim();
        
//parms[15].Value = ((TextBox)GridViewTianJia.Rows[e.RowIndex].FindControl("TextBoxShiChangQuNian")).Text.Trim();
        
//parms[16].Value = GridViewTianJia.DataKeys[e.RowIndex].Values[0].ToString().Trim();

        OracleConnection conn 
= new OracleConnection(OracleHelper.DatabaseConnStr);
        conn.Open();
        OracleTransaction trans 
= conn.BeginTransaction(IsolationLevel.ReadCommitted);

        
try
        
...{
            OracleHelper.ExecuteNonQuery(trans, CommandType.Text, sqlUpdate, parms);
            trans.Commit();
        }

        
catch (Exception ex)
        
...{
            trans.Rollback();
            ex.ToString();
        }

        
finally
        
...{
            conn.Close();
        }


        GridViewTianJia.EditIndex 
= -1;
        RecoveryGridView();
    }

JAVA连接mysql数据库,动态创建表以及动态插入数据

下面内容引自http://blog.micxp.com/index.php/archives/62/ 利用JDBC驱动链接Mysql数据其实很简单的,第一要下载一个名为 “mysql-conne...
  • liujuncheng000
  • liujuncheng000
  • 2017年12月08日 16:52
  • 129

详解MyBatis动态生成表插入数据

spring集成mybaits mybaits动态sql语句
  • sureSand
  • sureSand
  • 2016年09月14日 18:18
  • 5863

创建Xml文件,并解析该Xml数据,并插入数据库

工作中对xml的操作比较多,这里实现一种。使用dom4j解析xml、 流程: 创建xml----->然后解析--------》然后将数据用Log打印出来。 创建xml: package ...
  • xxm282828
  • xxm282828
  • 2014年03月31日 22:28
  • 2261

python连接数据库(3)插入更新和删除

首先说一下事务与回滚: 事务就是执行单元的集合 回滚就是回到执行之前的状态 事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 ① 原子性(atomicit...
  • GoodLuckAC
  • GoodLuckAC
  • 2017年05月30日 11:27
  • 1350

程序语言的静态作用域和动态作用域

首先我们看一段程序: #include stdio.h> int x= 5; int f(){ return x; } int g(){ int x = 1; return f...
  • csu54zzg
  • csu54zzg
  • 2014年09月07日 21:18
  • 1471

动态给table 添加 tr(行),实现添加多个对象

usually function 序号 姓名 年龄 生日 备注 ...
  • hbiao68
  • hbiao68
  • 2013年12月04日 10:27
  • 384

MyBatis动态SQL foreach标签实现批量插入

需求:查出给定id的记录: SELECT * FROM tb1_emplyee WHERE id IN #{item_id} ...
  • yalishadaa
  • yalishadaa
  • 2017年05月20日 16:21
  • 2254

使用Python创建MySQL数据库实现字段动态增加以及动态的插入数据

应用场景: 我们需要设计一个数据库来
  • Grace_0642
  • Grace_0642
  • 2014年08月04日 21:20
  • 6369

JS跨域调用之JSONP--动态Script标签方式实现跨域

动态Script标签的方式往往是用来访问不在同一个域的服务器内部的数据的。例如,  当前我的域名:  d1.wwwcomy.com  我需要访问的数据:  百度翻译"chair"的结果  ...
  • zheng963
  • zheng963
  • 2015年12月29日 13:17
  • 2122

Mybatis动态插入数据(使用trim标签)

Mybatis动态插入数据(使用trim标签) 有时我们控制同一张表,但传入的参数不固定,操作表的字段不固定,就要用到mybatis动态插入。.xml如下: "insertMessage" p...
  • u012780336
  • u012780336
  • 2017年02月05日 11:38
  • 810
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据库域的动态插入
举报原因:
原因补充:

(最多只允许输入30个字)