1、目前我从sql server 获取了一个数据集合: myDataSet2、我希望从sql server 获取的数据集,来填充我的Oracle 数据库中的表。表结构和这个 myDataSet 一致。3、相关朋友的解答如下: 有一个高手的回答,我修改如下,执行没有问题。但没更新数据到Oracle中。不知道什么原因。 public void CreateCmdsAndUpdate1(string connectionString,
string queryString, string tableName)
{
using (OracleConnection connection = new OracleConnection(connectionString))
{
OracleDataAdapter adapter = new OracleDataAdapter();
adapter.SelectCommand = new OracleCommand(queryString, connection);
OracleCommandBuilder builder = new OracleCommandBuilder(adapter); connection.Open(); DataSet customers = new DataSet();
adapter.Fill(customers, tableName); //code to modify data in dataset here adapter.Update(customers, tableName);
//return customers;
}
}
4、相关贴子一如下:
http://topic.csdn.net/u/20090904/09/cc5f3bc4-dd0d-4d0d-a40c-b016bdc66ff5.html
5、解决后,另开100分贴感谢。
string queryString, string tableName)
{
using (OracleConnection connection = new OracleConnection(connectionString))
{
OracleDataAdapter adapter = new OracleDataAdapter();
adapter.SelectCommand = new OracleCommand(queryString, connection);
OracleCommandBuilder builder = new OracleCommandBuilder(adapter); connection.Open(); DataSet customers = new DataSet();
adapter.Fill(customers, tableName); //code to modify data in dataset here adapter.Update(customers, tableName);
//return customers;
}
}
4、相关贴子一如下:
http://topic.csdn.net/u/20090904/09/cc5f3bc4-dd0d-4d0d-a40c-b016bdc66ff5.html
5、解决后,另开100分贴感谢。
解决方案 »
- asp.net下detailsview中Item_Command事件只能响应cancel的commandname
- 急救啊,急就啊,我的flv格式的视频放进远程服务器上访问不到!
- 将.net 4.0 转化为3.5后,还需要做什么,向高手求解
- ��ذٻ� 我的用户评论提交出现这个,我是用ajax传递的,问题是?
- jquery 如何实现139邮箱效果
- 求gridview中鼠标双击事件,急,急,急!
- asp:repeater 如何将ID参数传给删除按钮呢?
- gridview 分页,如何读取下这个gridview数据
- 寻求一个c#的分页类
- 如何将模态窗口中listbox的text和value传给父窗口的textbox和listbox
- Connection声明成静态的好不好?
- request.GetPreloadedEntityBody() 在vs2008为NULL
B如: select a.firstname, a.lastname, a.email from usertable a
那么这个时候(update method)更新的时候也是顺序更新firstname,lastname,email
select a.firstname, a.lastname, a.email from usertable a where 1=2
由于我是在测试,所以结构完全一样,Copy过来的.
foreach (DataRow dr in dt.Rows)
{
dr.SetAdded();
}
dt为从SqlServer取出来的,
将每一行的RowState设置为新增加的.在保存oracle中,试试看
dt.PrimaryKey=new DataColumn[]{dt.Columns["id"]};//假设主键是id
DataRow dr=dt.Rows.Find(0);
dr["name"]="test";//字段name设为test
adapter.Update(customers,tableName);
//......
adapter.SelectCommand = new OracleCommand(
queryString, connection);
EX:
da.updatecommand = new Oraclecommand("update linhai set contract = @contract " + "where order_id = @order_id" , conn); da.updatecommand.parameters.add("@contract", sqldbtype.nvarchar, 15, "contract"); da.updatecommand.parameters.add("@order_id", sqldbtype.nvarchar, 15, "order_id");
OracleCommandBuilder builder = new OracleCommandBuilder(adapter);
同一连接中通过DATAADAPTER桥梁这样写没错.
但由于这是两个不同的连接.
selectcommand是连接SQL SERVER,而UPDATECOMMAND是准备连接ORACLE,这样写法肯定不行.
public void CreateCmdsAndUpdate1(DataSet customers ,string connectionString,
string queryString, string tableName)
{
using (OracleConnection connection = new OracleConnection(connectionString))
{
OracleDataAdapter adapter = new OracleDataAdapter();
adapter.SelectCommand = new OracleCommand(queryString, connection);
OracleCommandBuilder builder = new OracleCommandBuilder(adapter); connection.Open(); //code to modify data in dataset here adapter.Update(customers, tableName);
//return customers;
}
} 没测试,估计差不多
http://www.g168.net/txt/asp.net/4-2-f.htm
你得把row的RowState修改为新增,那么在保存到oracle就行了。
代码参见我在4楼写的,
在看看自己连接的数据库信息等等。