关于C#中的dataSet以及dataAdapter之 insert record

===================================
从逻辑出发 数据库需要的三个基本操作
 
插入 删除 更新 下面就最基本的概念进行描述
===================================
 
插入
 
public int doInsertion(String myTableName,Hashtable paraTable,String tableID)
    {
 
        String strConnection = System.Configuration.ConfigurationManager.AppSettings"SQLConnectionString"];
        dbConnection = new SqlConnection(strConnection);
        dataSet = new DataSet();
        dbConnection.Open();
        String sql = "SELECT * FROM " + myTableName.ToString() + " WHERE " + tableID.ToString()+"= (SELECT MIN(" + tableID.ToString() + ") FROM " + myTableName.ToString() + ")";
// 目前看来未必需要这个sql,但是空着似乎不行 因此就选择最小ID的schema做一个select
        
        dbAdapter = new SqlDataAdapter(sql, dbConnection);
        dbAdapter.Fill(dataSet,myTableName.ToString());
//dataAdapter.Fill 不仅仅是填充数据 而且是填充schema 但是据说只有Fillschema才能把constrains也加入 目前还没有试过       
        dbConnection.Close();
        DataTable myDataTable = dataSet.Tables[myTableName.ToString()];
        DataRow myDataRow;
        myDataRow = myDataTable.NewRow();
 
//将哈西表中的对应对一一填入schema中相应的项
        DataColumnCollection myDCC = myDataTable.Columns;
        for (int i = 0; i < paraTable.Count; i++)
        {
            myDataRow[i] = paraTable[myDCC[i].ColumnName.ToString()];
           
        }
        myDataTable.Rows.Add(myDataRow);
//Add方法只适合添加一条记录

        int result = dbAdapter.Update(dataSet, myTableName.ToString());
        return result;
}
 
值得一提的是 虽然涉及到dataRow的schema但是没有任何关于到DataColumn的操作 因此想象中的 按dataColumn对应每个属性 完全没有必要 实际上DataColumn是对dataSet的某一个属性 所有row的一个集合 因此 从DataTable.Columns[0]提出的Column的一个实例 myColumn[5] 应该是第5行的针对这个属性的值
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值