现在的位置: 首页 > 综合 > 正文

数据库域的动态插入

2013年08月20日 ⁄ 综合 ⁄ 共 5726字 ⁄ 字号 评论关闭

稍后解释

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)
        

抱歉!评论已关闭.