param = new OleDbParameter("as_r_djbh",OleDbType.Char);
param.Direction = ParameterDirection.Output;
param.Size = 16;
OleDbCom.Parameters.Add(param);try
{
OleDbCom.ExecuteNonQuery();
djbh = OleDbCom.Parameters["as_r_djbh"].Value.ToString();
}
……使用上面的方法我在我自己的机器上运行是没有问题,能够取出相应的返回参数,可是拿到用户那后就莫名其妙的取出值为空?
访问数据库是OleDb去访问Sybase ase数据库。我有点要去客户的服务器上安装个。net去调试的冲动!各位哪位有遇到过这样的事情呀?
param.Direction = ParameterDirection.Output;
param.Size = 16;
OleDbCom.Parameters.Add(param);try
{
OleDbCom.ExecuteNonQuery();
djbh = OleDbCom.Parameters["as_r_djbh"].Value.ToString();
}
……使用上面的方法我在我自己的机器上运行是没有问题,能够取出相应的返回参数,可是拿到用户那后就莫名其妙的取出值为空?
访问数据库是OleDb去访问Sybase ase数据库。我有点要去客户的服务器上安装个。net去调试的冲动!各位哪位有遇到过这样的事情呀?
djbh = param.Value.ToString();
解决方式为将返回参数放在第一位就可以了,原来是在最后一位!不过对这样的解决方法让我感觉很不正常,为什么这个会区分有的机器呢?大家一起讨论下吧
还有一个怪问题:
我要Truncate一个Table,Truncate Table ……
具体执行如下:
OleDbConn = new OleDbConnection(DataConnString);
OleDbConn.Open();
OleTran = OleDbConn.BeginTransaction();
for(int i=0;i<sql.Length;i++)
{
errsql = sql[i];
OleDbCom = new OleDbCommand(sql[i],OleDbConn,OleTran);
OleDbCom.ExecuteNonQuery();
}
OleTran.Commit();这次又遇到问题了,在多数机器上没有问题,在有一台机器上本来也没有问题,可昨天突然出现问题了,提示为:[DataDirect ADO Sybase Provider]Truncate table command not allowed within multi-statement transaction
搞不懂为什么了!
我大概看了看可能的错误原因有这么两个
1.连接的事务没有设置为自动提交
2.truncate table命令之前不能有未提交的数据操作。 可我觉得这样解释有点不通。
各位有什么高见?
http://minbear.cnblogs.com/archive/2006/05/12/398421.html