c#连接sybase数据库Connection to Sybase server has been lost

.Net技术 码拜 10年前 (2015-04-02) 2865次浏览 0个评论

c#连接sybase数据库,命令执行时间如果很长就会抛出Connection to Sybase server has been lost. All active transactions have been rolled back的异常,
可是连接的ConnectionTimeout属性是只读的不能设置,代码如下:

public static DataTable GetDataTable(string connStr,string sqlCom)
        {
            DataTable dt = new DataTable();
            AseConnection con = new AseConnection(connStr);
            con.Open();
            //con.ConnectionTimeout = 1000;不能设置。
            if (con.State == ConnectionState.Open)
            {
                //MessageBox.Show("数据库连接成功。");
            }
            else
            {return null;}
            AseDataAdapter da = new AseDataAdapter(sqlCom, con);
            da.Fill(dt);
            con.Close();
            return dt;
        }

这要怎么解决啊?

c#连接sybase数据库Connection to Sybase server has been lost
在连接字符串里设置,类似下面这样的
string CONN_STRING = “server=.;database= USERNAME ;uid=sa ;pwd=sa; Connect Timeout=60“;
c#连接sybase数据库Connection to Sybase server has been lost
引用 1 楼 gxingmin 的回复:

在连接字符串里设置,类似下面这样的
string CONN_STRING = “server=.;database= USERNAME ;uid=sa ;pwd=sa; Connect Timeout=60”;

我这样设置后用messagebox显示了下ConnectionTimeout,确实是我设置的值,可是还是抛出那个异常,可是其它的sql语句都是正常的,我把这个抛异常的sql语句放到sybase central里面去执行没问题说明语句是对的,只不过执行的时间很长,还有没有什么其他需要设置的呢?

c#连接sybase数据库Connection to Sybase server has been lost
引用 1 楼 gxingmin 的回复:

在连接字符串里设置,类似下面这样的
string CONN_STRING = “server=.;database= USERNAME ;uid=sa ;pwd=sa; Connect Timeout=60”;

貌似这个超时设置了没起什么作用,我设置成5秒后它也还是等了很长时间才出现连接丢失的异常,而不是想象中的5秒就抛出异常…

c#连接sybase数据库Connection to Sybase server has been lost
20分
DbCommand也有TimeOut设置,这个也设长点

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c#连接sybase数据库Connection to Sybase server has been lost
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!