Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 最好使用任务来防止UI冻结。现在是调查的好时机。另外,您可以使用using语句稍微清理一下代码。与前面的注释一致,您也可以尝试线程。我建议使用任务来防止UI冻结。现在是调查的好时机。另外,您可以使用using语句稍微清理一下代码。在前面的注释中,您也可以尝_C#_Sql_Visual Studio_Ms Access - Fatal编程技术网

C# 最好使用任务来防止UI冻结。现在是调查的好时机。另外,您可以使用using语句稍微清理一下代码。与前面的注释一致,您也可以尝试线程。我建议使用任务来防止UI冻结。现在是调查的好时机。另外,您可以使用using语句稍微清理一下代码。在前面的注释中,您也可以尝

C# 最好使用任务来防止UI冻结。现在是调查的好时机。另外,您可以使用using语句稍微清理一下代码。与前面的注释一致,您也可以尝试线程。我建议使用任务来防止UI冻结。现在是调查的好时机。另外,您可以使用using语句稍微清理一下代码。在前面的注释中,您也可以尝,c#,sql,visual-studio,ms-access,C#,Sql,Visual Studio,Ms Access,最好使用任务来防止UI冻结。现在是调查的好时机。另外,您可以使用using语句稍微清理一下代码。与前面的注释一致,您也可以尝试线程。我建议使用任务来防止UI冻结。现在是调查的好时机。另外,您可以使用using语句稍微清理一下代码。在前面的注释中,您也可以尝试线程化。因此,所有这些使用语句意味着我不必再为con.close、con.dispose等费心了?我是否也应该对我的sqlCmd对象执行同样的操作?@SafetyFish-正确。我错过了命令实例,但我更新了代码以反映该更改。在大多数情况下,不


最好使用任务来防止UI冻结。现在是调查的好时机。另外,您可以使用
using
语句稍微清理一下代码。与前面的注释一致,您也可以尝试线程。我建议使用任务来防止UI冻结。现在是调查的好时机。另外,您可以使用
using
语句稍微清理一下代码。在前面的注释中,您也可以尝试线程化。因此,所有这些使用语句意味着我不必再为con.close、con.dispose等费心了?我是否也应该对我的sqlCmd对象执行同样的操作?@SafetyFish-正确。我错过了命令实例,但我更新了代码以反映该更改。在大多数情况下,不需要处理
SqlCommand
,但最好是处理实现
IDisposable
的所有类型。
using
块为您做到了这一点,它确保在保留作用域时,类型被处理。@SafetyFish-要卸载该方法,请参见前面的答案:这也是一个非常有趣的答案。非常感谢,如果答案中的代码应该放在一个异步方法中,他或者需要在内部切换到异步方法,或者(可能)使用invoke来设置标签。所以所有这些使用语句意味着我不再需要为con.close、con.dispose等而烦恼了?我是否也应该对我的sqlCmd对象执行同样的操作?@SafetyFish-正确。我错过了命令实例,但我更新了代码以反映该更改。在大多数情况下,不需要处理
SqlCommand
,但最好是处理实现
IDisposable
的所有类型。
using
块为您做到了这一点,它确保在保留作用域时,类型被处理。@SafetyFish-要卸载该方法,请参见前面的答案:这也是一个非常有趣的答案。多谢了,如果答案中的代码应该放在异步方法中,他需要在内部切换到异步方法,或者(可能)使用invoke来设置标签。
private void readWriteRefuseDay()
{
    OleDbDataReader dr;
    oCon = new OleDbConnection(oConStr);
    sqlCon = new SqlConnection(sqlConStr);
    oQuery = "SELECT UPRN, RefuseDay, RefuseWeek FROM RefuseDay";
    sqlQuery = "INSERT INTO Ref_RefuseDay (UPRN, RefuseDay, RefuseWeek) VALUES (@UPRN, @RefuseDay, @RefuseWeek)";
    oCmd = new OleDbCommand(oQuery, oCon);

    string sUPRN;
    string sRefuseDay;
    Int32 iRefuseWeek;

    try
    {
        oCon.Open();
        sqlCon.Open();
        count = 0;
        lblProcessing.Text = count.ToString();

        dr = oCmd.ExecuteReader();

        while (dr.Read())
        {
            lblProcessing.Text = "Processing: RefuseDay " + count.ToString();
            sUPRN = dr.GetString(0);
            sRefuseDay = dr.GetString(1);
            iRefuseWeek = dr.GetInt32(2);

            sqlCmd = new SqlCommand(sqlQuery, sqlCon);
            sqlCmd.Parameters.AddWithValue("@UPRN", sUPRN);
            sqlCmd.Parameters.AddWithValue("@RefuseDay", sRefuseDay);
            sqlCmd.Parameters.AddWithValue("@RefuseWeek", iRefuseWeek);
            sqlCmd.ExecuteNonQuery();

            count++;
        }

        dr.Close();

        oCon.Close();
        oCmd.Dispose();
        oCon.Dispose();

        sqlCon.Close();
        sqlCmd.Dispose();
        sqlCon.Dispose();
    }
    catch (Exception ex) { MessageBox.Show(ex.Message); }
using (SqlConnection sqlCon = new SqlConnection(connectionString)) 
private async void button_Click(object sender, EventArgs e)
{
    await readWriteRefuseDayAsync();
}

private async Task readWriteRefuseDayAsync() {
  const string oQuery = "SELECT UPRN, RefuseDay, RefuseWeek FROM RefuseDay";
  const string sqlQuery = "INSERT INTO Ref_RefuseDay (UPRN, RefuseDay, RefuseWeek) VALUES (@UPRN, @RefuseDay, @RefuseWeek)";
  try {
    using(var oCon = new OleDbConnection(oConStr))
    using(var sqlCon = new SqlConnection(sqlConStr))
    using(var oCmd = new OleDbCommand(oQuery, oCon))
    {
        await oCon.OpenAsync();
        await sqlCon.OpenAsync();
        count = 0;
        lblProcessing.Text = count.ToString();

        using(var dr = await oCmd.ExecuteReaderAsync())
        {
            while (await dr.ReadAsync())
            {
                lblProcessing.Text = "Processing: RefuseDay " + count.ToString();

                var sUPRN = dr.GetString(0);
                var sRefuseDay = dr.GetString(1);
                var iRefuseWeek = dr.GetInt32(2);

                using(var sqlCmd = new SqlCommand(sqlQuery, sqlCon))
                {
                   sqlCmd.Parameters.AddWithValue("@UPRN", sUPRN);
                   sqlCmd.Parameters.AddWithValue("@RefuseDay", sRefuseDay);
                   sqlCmd.Parameters.AddWithValue("@RefuseWeek", iRefuseWeek);
                   await sqlCmd.ExecuteNonQueryAsync();
                }
                count++;
            }
        }
    }
  }
  catch (Exception ex) {
    MessageBox.Show(ex.Message); 
  }
}