簡體   English   中英

System.Data.OleDb.OleDbException:“沒有為一個或多個必需參數提供值”

[英]System.Data.OleDb.OleDbException: 'No value given for one or more required parameters'

我在另一個表中很好地使用了這段代碼,但在這個表中,由於這個錯誤,我無法使用它。 我無法弄清楚問題所在。 我需要你的幫助。 這是我的數據庫的樣子:

在此處輸入圖像描述

這就是數據庫的設計。 翻譯數據類型有:

Auto number
Number
short text
short text
short text
Number

在此處輸入圖像描述

private void button_degistir_Click(object sender, EventArgs e)
{
    int id = Convert.ToInt32(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value);
    OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= hasta_bilgisi.accdb");
    baglanti.Open();
    OleDbCommand guncelle_komut = new OleDbCommand("update tbl_Randevu set randevu_hasta_id=@hastaninid,teşhis=@teshis,tedavi=@tedav,randevu_tarihi=@randevu_tarih,verilen_ilaç_id=@ilacid where randevu_hasta_id=@x", baglanti);
    guncelle_komut.Parameters.AddWithValue("@hastaninid", textBox_hastaid.Text);
    guncelle_komut.Parameters.AddWithValue("@teshis", textBox_teshis.Text);
    guncelle_komut.Parameters.AddWithValue("@tedav", textBox_tedavi.Text);
    guncelle_komut.Parameters.AddWithValue("@randevu_tarih", dateTimePicker1.Value.ToString());
    guncelle_komut.Parameters.AddWithValue("@ilacid", comboBox_ilac.SelectedIndex.ToString());
                
    
    MessageBox.Show(guncelle_komut.ExecuteNonQuery() + "adet güncellendi");
    baglanti.Close();
}

報錯是你忘記加id參數了;

guncelle_komut.Parameters.AddWithValue("@x", id);

但如果我正確理解您的代碼和表格設計,似乎還有一個問題。 您正在使用@x作為id參數,即 @x 。 但這不是唯一的 ID。 這是一個反復出現的領域。 如果您使用randevu_hasta_id ,所有具有相同randevu_hasta_id的行都將被更新。 不只是一個。 您的唯一 ID 是randevu_id 如果你想更新一個特定的行,你應該使用那個字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM