0

同時にマルチスレッドでデータベースに書き込もうとしました
が、myCommand.Connection.Open()でエラーが発生しました。
エラー:オブジェクト参照がオブジェクトのインスタンスに設定されていません。
どうすればこの問題を解決できますか?

この例は問題を示しています

private void button1_Click(object sender, EventArgs e)
    {
        new Thread(() =>
        {
            SqlCommand myCommand = new SqlCommand("insert into table(a,b)values(1,'aaa')", Connection);
            myCommand.Connection.Open();
            myCommand.ExecuteNonQuery();
            myCommand.Connection.Close();
        }).Start();
        new Thread(() =>
        {
            SqlCommand myCommand = new SqlCommand("insert into table(a,b)values(2,'aaa')", Connection);
            myCommand.Connection.Open();
            myCommand.ExecuteNonQuery();
            myCommand.Connection.Close();
        }).Start();
        new Thread(() =>
        {
            SqlCommand myCommand = new SqlCommand("insert into table(a,b)values(3,'aaa')", Connection);
            myCommand.Connection.Open();
            myCommand.ExecuteNonQuery();
            myCommand.Connection.Close();
        }).Start();
        new Thread(() =>
        {
            SqlCommand myCommand = new SqlCommand("insert into table(a,b)values(4,'aaa')", Connection);
            myCommand.Connection.Open();
            myCommand.ExecuteNonQuery();
            myCommand.Connection.Close();
        }).Start();
    }
4

2 に答える 2

2

有効な接続が必要です。

SqlConnection connection = new SqlConnection(...);
connection.Open();

SqlCommand command = new SqlCommand(...);
command.Connection = connection;
command.ExecuteNonQuery();
于 2012-09-12T12:47:13.270 に答える
0

なぜそれが必要なのか/したいのかは不明です。SQL2K8では、テーブル値のコンストラクターを1k行未満の単一のバッチで使用できます。

insert into table(a,b)values(1,'aaa'),(2,'aaa'),(3,aaa)

于 2012-09-12T12:57:21.440 に答える