1

MS Access への OleDb 接続に問題があります。この行はエラーをスローしています:

command1.ExecuteNonQuery();

次の部分は私のコードです:

if (textBox.Text.Length != 6) return;
{
    cmd.CommandText = ("SELECT last_name +', '+ first_name from name where id =@Name");
    cmd.Parameters.Add(new SqlParameter("Name", textBox.Text.Replace(@"L", "")));
    cmd.CommandType = CommandType.Text;
    cmd.Connection = DBConnection;

    returnValue = cmd.ExecuteScalar() + "\t " + textBox.Text.Replace(@"L", "");

    DBConnection.Close();

    OleDbConnection connection1 = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\Registration.accdb");
    OleDbCommand command1 = new OleDbCommand();
    command1.CommandText = "UPDATE Table SET ID=@ID, Name=@Name, TimeIn=@TimeInAM, TimeOut=@TimeOutAM";
    command1.Parameters.AddWithValue("@ID", returnValue);
    connection1.Open();
    command1.ExecuteNonQuery();
    connection1.Close();

    Staff_Register(returnValue, e);
}
4

2 に答える 2

3

と関連付けられていないconnection1ためcommand1、例外が発生しています。

command1.CommandText = "UPDATE Table SET ID=@ID, Name=@Name, TimeIn=@TimeInAM, TimeOut=@TimeOutAM";
command1.Parameters.AddWithValue("@ID", returnValue);
command1.Connection = connection1; // missing this
connection1.Open();

またusing、接続オブジェクトの破棄を保証する接続とコマンドでステートメントを使用することも検討してください。

于 2013-11-08T14:49:39.673 に答える
0

以下のように、ExecuteNonQuery() を呼び出す前に、接続オブジェクトをコマンド オブジェクトに割り当てます。

command1.Connection=connection1 ;
于 2013-11-08T14:51:20.043 に答える