使用sybase提供程序sybase.adonet4.aseclient在c#ado.net中运行writetext sql命令时出错。我试过很多不同的方法,例如使用parameterindex、命名参数等等。有人能帮我吗?我在下面展示示例代码。
AseConnection cn = new AseConnection(connection.ConnectionString);
cn.Open();
//..... there is other code here that calls a stored procedure and gets textpointer
// reference, but I am leaving it out to keep it short and simple
AseCommand cmd2 = new AseCommand("writetext mytable.column1 @textPointer @bigText", cn);
cmd2.CommandType = CommandType.Text
cmd2.Parameters.Add(new AseParameter("@textPointer", AseDbType.VarBinary, 16));
cmd2.Parameters["textPointer"].value = textPointerOut.value
cmd2.Parameters.Add(new AseParameter("@bigText", AseDbType.Text));
cmd2.Parameters["bigText"].value = bigText;
cmd2.ExecuteNonQuery();
cmd2.executenoquery()引发异常,错误为必须声明变量@textpointer
更新:如果我尝试下面的语法,我会在'@bigtext'附近得到一个错误的sntax
AseCommand cmd2 = new AseCommand("{writetext mytable.column1 @textPointer @bigText}", cn);
1条答案
按热度按时间drnojrws1#
我在向动态sql传递aseparameter时遇到了太多麻烦。不需要使用命名参数。使用动态sql,我必须执行以下操作:
声明textpointer变量
获取指向要更新的列的指针
使用writetext命令更新列