我一直在这个网络上,我很惊讶,我似乎无法找到任何方法来做我想要的。使用C中的文本框更新CLOB#
我使用Oracle.DataAccess.Client
库在我的C#项目,不过时的System.Data.OracleClient.
我有一个非常简单的表:
CREATE TABLE testing (
ID NUMBER(10),
COMMENTS CLOB,
DATECREATED DATE DEFAULT (SYSDATE) NOT NULL,
DATEMODIFIED DATE
);
INSERT INTO testing (ID, COMMENTS) VALUES(1, 'this is a test');
上面明明工作得很好。问题是,这是一个评论字段,它将被改变。在我的C#程序中,我希望允许用户保存注释。对于这个例子,我删除了任何复杂的东西
我有一个窗体上的按钮和一个名为“评论”的文本框。
using (OracleConnection connection = new OracleConnection(<VALID CONN STRING GOES HERE>)) {
connection.Open();
using (OracleCommand command = new OracleCommand()) {
command.Connection = connection;
command.CommandText = "UPDATE testing SET COMMENTS = :COMMENTS, DATEMODIFIED = sysdate WHERE ID = :ID";
command.CommandType = CommandType.Text;
command.Parameters.Add("ID", OracleDbType.Int32, ParameterDirection.Input).Value = 1;
command.Parameters.Add("COMMENTS", OracleDbType.Clob, ParameterDirection.Input).Value = comments.Text;
command.ExecuteNonQuery();
}
}
所以基本上这个代码工作,只要我不试图写Clob。如果我保存修改的日期按预期创建。但是,当我用Clob保存时,没有任何反应。从oracle没有错误消息,没有例外,没有。
如果我放弃参数,做了错误的方式:
command.CommandText = "UPDATE testing SET COMMENTS = " + comments.Text + ", DATEMODIFIED = sysdate";
是没有问题的。看来参数化是这里的问题。
重复? http://stackoverflow.com/questions/4902250/insert-blob-in-oracle-database-with-c-sharp – gustavodidomenico 2013-04-26 16:54:38
这个问题是处理“BLOB”数据类型,“CLOB”通常是用于字符。与BLOB不同的方法可能来自文件流,因为我的文本来自文本框。 – Rakshasas 2013-04-26 16:57:00
愚蠢的问题,午餐和会议可以做什么,这是惊人的。这个问题是否应该被删除或者是否有足够的价值来帮助未来的某个人? – Rakshasas 2013-04-26 19:20:40