0

我使用以下代码进行保存。将记录更新到 Oracle,

OracleConnection con = new OracleConnection(constr);
con.Open();

// Create the command.
OracleCommand cmd = new OracleCommand("", con);
cmd.CommandText = "<?xml version=\"1.0\"?>\n" +
    "<ROWSET>\n" +
    " <MYROW>\n" +
    " <FIELD1>2</FIELD1>\n" +
    " <FIELD2>zafar</FIELD2>\n" +
    " </MYROW>\n" +
    "</ROWSET>\n";

// Set the XML save properties.
KeyColumnsList = new string[1];
KeyColumnsList[0] = "FIELD1";
UpdateColumnsList = new string[1];
UpdateColumnsList[0] = "FIELD2";

cmd.XmlSaveProperties.KeyColumnsList = KeyColumnsList;
cmd.XmlSaveProperties.UpdateColumnsList = UpdateColumnsList;
cmd.XmlSaveProperties.RowTag = "MYROW";
cmd.XmlSaveProperties.Table = "testconn";
cmd.XmlSaveProperties.Xslt = null;
cmd.XmlSaveProperties.XsltParams = null;
rows = cmd.ExecuteNonQuery();

Console.WriteLine("rows: " + rows);

Field2我要使用的列中select user from dual。我无法保存当前的数据库用户。

4

1 回答 1

0

中的数据结构CommandText假定所有值都是文字。没有办法让它识别内部查询或表达式。如果要查询,user则必须单独执行并将其合并到数据中。Xslt使用andXsltParams子句可以做到这一点。

于 2012-08-06T22:42:34.297 回答