Prateek gsharma Ответов: 1

Нет значения для одного или нескольких обязательных параметров ошибка в cmd.executenonquery


получение ошибки во время операции вставки

более того, если я удалю con1.open(); я получаю ошибку критерия несоответствия типа данных выражению.


также я не удаляю con1.open(); тогда я получаю соединение, которое не было закрыто

Что я уже пробовал:

частный недействительными обработчика button1_click(объект отправителя, EventArgs в электронной)
{
using (OleDbConnection con1 = new OleDbConnection(con))
{
OleDbCommand cmd = новая OleDbCommand();

строка query1 = "вставить в Spldetails([Date],[EmpId],[EmpName],[Designation],[Records],[Splwrkhrs],[Team],[Splwrk],[Splwrkdetails],[Allottedby]) Значения(@D1 и@В1@В2@ГД@дь,@ШР,@Тум@СР@СД@дь)";
вы видите con1.Открыть();
OleDbDataAdapter da = новый OleDbDataAdapter(cmd);
да.Команды selectcommand.Parameters.Add("@v1", OleDbType.Variant, 30).Value = this.textBox1.Text;
да.Команды selectcommand.Parameters.Add("@v2", OleDbType.Variant, 100).Value = this.textBox2.Text;
да.Команды selectcommand.Parameters.Add("@dg", OleDbType.Variant, 50).Value = this.textBox3.Text;
да.Команды selectcommand.Parameters.Add("@rd", OleDbType.Variant, 15).Value = Convert.Метод todouble(это.textBox4.Текст);
да.Команды selectcommand.Parameters.Add("@shr", OleDbType.Variant, 15).Value = Convert.Метод todouble(это.textBox5.Текст);
да.Команды selectcommand.Parameters.Add("@tm", OleDbType.Variant, 100).Value = this.textBox8.Text;
да.Команды selectcommand.Parameters.Add("@d1", OleDbType.Date).Значение = это.dateTimePicker1.Текст;
да.Команды selectcommand.Parameters.Add("@ab", OleDbType.Variant, 100).Value = this.comboBox1.Text;
да.Команды selectcommand.Parameters.Add("@sw", OleDbType.Variant, 100).Value = this.comboBox2.Text;
да.Команды selectcommand.Parameters.Add("@sd", OleDbType.Variant, 300).Value = this.textBox6.Text;

cmd = new OleDbCommand(query1, con1);


УМК.Метод executenonquery();

Ящик для сообщений.Шоу("Поздравляю....Ваши данные были успешно представлены");
textBox4.Text = "";
textBox5.Text = "";
textBox6.Text = "";
поле combobox1.Текст = "";
comboBox2.Text = "";
}

1 Ответов

Рейтинг:
0

Thomas Daniels

Вы помещаете свои параметры в OleDbDataAdapter но вы нигде не используете da чтобы передать параметры (кроме того, вы все равно не должны использовать SelectCommand, но InsertCommand); похоже, что вам на самом деле не нужен OleDbDataAdapter, чтобы вы могли его отбросить da и просто установите параметры с помощью cmd.Parameters:

string query1 = "INSERT INTO Spldetails([Date],[EmpId],[EmpName],[Designation],[Records],[Splwrkhrs],[Team],[Splwrk],[Splwrkdetails],[Allottedby]) VALUES(@d1,@v1,@v2,@dg,@rd,@shr,@tm,@sw,@sd,@ab)";
con1.Open();
OleDbCommand cmd = new OleDbCommand(query1, con1);
cmd.Parameters.Add("@v1", OleDbType.Variant, 30).Value = this.textBox1.Text;
// other parameters too
cmd.ExecuteNonQuery();


Prateek gsharma

ладно

Prateek gsharma

могу ли я использовать cmd.Parameters.Добавить для команды insert?

Prateek gsharma

та же ошибка отображается сэр

Thomas Daniels

Похоже, я что-то пропустил, когда писал ответ... игнорируя то, что я сказал изначально, я обновил свой ответ, и теперь он должен быть правильным.