超时时出现SQl错误

时间:2011-06-16 14:45:59

标签: c# sql timeout

我在SQL程序的超时方面遇到了麻烦,我把它缩小到这个函数,我可以传递参数和它的单词,但在这个例子中我发送了一些数据。当它运行时,我得到一个超时,大约6个左右进入数据库,然后超过2分钟发生超时。在本地运行时,一切正常,操作在几秒钟内完成。!!有任何想法吗? 。

我知道它获取所需的信息并进入列表,它可以连接并向SQL发送数据。我读过可能会创建太多的连接等,但似乎没有什么可以修复它。你遇到的任何想法或简单的问题?还尝试按照

禁用调试器等
public void ConnectToSQl(String word, int count, String HashTag = " ")
{
    checkExcludeList();
    SqlConnection conn = new SqlConnection();
    conn.ConnectionString = "Data Source = dev\\SQLEXPRESS ;" +
                            "Initial Catalog=sml;" + 
                            "User id=**** ;" + 
                            "Password =******;" + 
                            "Trusted_Connection=No";
    try {
        conn.Open();
        SqlCommand Command = new SqlCommand("INSERT INTO word_list (word , count)" +
                                            "VALUES (@word , @count)", conn);
        //add parameters for insert
        Command.Parameters.AddWithValue("@word", word);
        Command.Parameters.AddWithValue("@count", count);
        Command.ExecuteNonQuery();
    } catch (Exception e) {
        Box.Text = "SQL error" + e;
    } finally {
       conn.Close();
    }
}

1 个答案:

答案 0 :(得分:1)

尝试传递您的开放连接。打开sql连接非常昂贵。

public void ConnectToSQl(SqlConnection conn, String word, int count, String HashTag = " ")
{   
    if (conn.State != ConnectionState.Open)
        throw new SqlExecutionException("Sqlconnection is not open");

    checkExcludeList();

    SqlCommand Command = new SqlCommand(
        "INSERT INTO word_list (word , count)" +
        "VALUES (@word , @count)", conn);

    //add parameters for insert
    Command.Parameters.AddWithValue("@word", word);
    Command.Parameters.AddWithValue("@count", count);

    Command.ExecuteNonQuery();

}