如何将C# 的DATASET 直接写入(Insert)Oracle? 如何将C# 的DATASET 直接写入(Insert)Oracle? private void TransferData(DataSet ds) { //此处如何实现? } 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 --参考: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行的针对这个属性的值*/ Oracle修改字段类型,把varchar2类型变成date类型 表已经有数据 常见的场景:在B表中找A表的记录,使用哪种方法效率最高? 数据库的一个简单的问题中的索引 动态insert语句插入中文时报错,求解?????? sequence的nextval小于当前最大id,如何让它大于最大id呢? 如何延迟一条sql的查询时间 如何读取数据库中的日志呢? 关于SQL查询速度的优化问题 关于Oracle 8i 的最菜问题,高分请教!谢谢 IMP为什么是乱码?怎么办?急!!! 一个很简单但又很头大的非典型sql问题....... oracle数据库查询更新问题
--参考:
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行的针对这个属性的值
*/