c#连接sybase数据库,命令执行时间如果很长就会抛出Connection to Sybase server has been lost. All active transactions have been rolled back的异常, 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; } 这要怎么解决啊? |
|
在连接字符串里设置,类似下面这样的
string CONN_STRING = “server=.;database= USERNAME ;uid=sa ;pwd=sa; Connect Timeout=60“; |
|
我这样设置后用messagebox显示了下ConnectionTimeout,确实是我设置的值,可是还是抛出那个异常,可是其它的sql语句都是正常的,我把这个抛异常的sql语句放到sybase central里面去执行没问题说明语句是对的,只不过执行的时间很长,还有没有什么其他需要设置的呢? |
|
貌似这个超时设置了没起什么作用,我设置成5秒后它也还是等了很长时间才出现连接丢失的异常,而不是想象中的5秒就抛出异常… |
|
20分 |
DbCommand也有TimeOut设置,这个也设长点
|