Saya mengalami masalah saat menambahkan tanggal/waktu ke Microsoft Access, ini kode saya:

private void submit_Click(object sender, EventArgs e)
        {
            try
            {
                connection.Open();
                OleDbCommand command = new OleDbCommand();
                command.Connection = connection;
                command.CommandText = "insert into DailyLog (EmployeeID,BusNumber,RouteID,DestinationID,ActivityID,Date,MilesDriven,GasInGallons,Comments) values('"+ employee.SelectedValue + "','" + bus.SelectedValue + "','" + route.SelectedValue + "','" + dest.SelectedValue + "','" + activity.SelectedValue + "','" + theDate.Value.ToString("MM/dd/yyyy") + "','" + miles.Value + "','" + gas.Value + "','" + comments.Text + "')";

                command.ExecuteNonQuery();
                MessageBox.Show("Your log has been submitted.");
                connection.Close();
            }
            catch(Exception ex)
            {
                MessageBox.Show("Err: " + ex);
                connection.Close();
            }
        }

Itu memberi saya kesalahan sintaks untuk "Tanggal" saja. Apa yang harus saya lakukan? Saya sudah mencoba memperbaiki properti, menjadikannya tanggal pendek, tanggal umum, dll. Sepertinya tidak ada yang berhasil untuk saya.

Kesalahan Tepat: Error c# winforms ms-access

-1
Eian Knudsen 28 Mei 2021, 17:21

1 menjawab

Jawaban Terbaik

Coba parameterisasikan perintah Anda. Ini akan menangani potensi masalah injeksi SQL serta memformat nilai DBMS dengan benar.

string commandText = "insert into DailyLog (EmployeeID,BusNumber,RouteID,DestinationID,ActivityID,Date,MilesDriven,GasInGallons,Comments) values(@employee, @bus, @route, @dest, @activity, @theDate, @miles, @gas, @comments)";

using (OleDbCommand command = new OleDbCommand(commandText, connection)) {

    // add parameters
    command.Parameters.Add(new OleDbParameter("@employee", OleDbType.Integer));
    command.Parameters.Add(new OleDbParameter("@theDate", OleDbType.DBDate));

    // set parameter valuess
    command.Parameters["@employee"] = employee.SelectedValue;
    command.Parameters["@theDate"] = theDate.Value;

    // execute command
    command.ExecuteNonQuery();
}

Diperbarui untuk menghapus AddWithValue.

0
Nicholas Hunter 28 Mei 2021, 14:46