数据表未填写?

时间:2019-03-01 08:59:42

标签: c# asp.net

创建新的数据表后,数据集未将其应填充的50列填充到数据表中,我得到了一个空的数据表。

List<DataTable> test = new List<DataTable>();                
foreach (string currentconstring in constrings)
{
    started = false;
    DataTable dt = new DataTable();
    DataSet _dataSet = new DataSet();
    test.Add(dt);
    Thread connectthread = new Thread(() =>
    {
        started = true;
        DataTable localdt = dt;
        try
        {
             // access the database
            MySqlConnection mySqlconnection = new MySqlConnection(currentconstring); //Connects to the MySQL database with the current connection string
            mySqlconnection.Open();
            MySqlCommand SqlCommand = new MySqlCommand(_sqlQuery, mySqlconnection); //Sends the specified query to the server
            MySqlDataAdapter SqlDataAdapter = new MySqlDataAdapter(SqlCommand);

            SqlDataAdapter.Fill(_dataSet);  //Fill Dataset
            localdt = _dataSet.Tables[0];

            mySqlconnection.Close();

        }
        catch (Exception)
        {
        }
    });

1 个答案:

答案 0 :(得分:1)

您已经创建了一个线程并向其传递了一个委托(函数),但是尚未启动该线程。

尝试在声明线程后放入connectthread.Start();

您可能需要等待线程完成,因此可能必须使用Thread.Join()

您可能要使用async/await,因为这比自己创建线程要好,而且您正在共享一个正在写入的数据结构,而无需使用locks。使用多线程时,请检查常规问题。