簡體   English   中英

編輯datagridview。 Visual C#2008

[英]Editing datagridview. Visual C# 2008

我有以下代碼:

        private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
        string value = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
        string cellid = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString(); //to działa, ale nie przenosi na %s 

        MySqlConnection mysqlCon = new MySqlConnection("SERVER = naven.com.pl; DATABASE = naven1_terminarz; User ID = naven1_terminarz; PASSWORD = mydbpassword;");
        MySqlCommand cmd = new MySqlCommand("UPDATE `naven1_terminarz`.`Terminarz` SET `Data` = '2014-03-06 00:00:00',`Autor` = '@VALUE',`Tekst` = 'dadsssldhkashdjasjkdkasjdhasdkas',`Użytkownik` = 'Marcina', `Klient` = 'dsa' WHERE `Terminarz`.`id` = '@ID' LIMIT 1 ;", mysqlCon);

        //MySqlCommand cmd = new MySqlCommand("UPDATE `naven1_terminarz`.`Terminarz` SET `Data` = '2014-03-06 00:00:00',`Autor` = '@VALUE',`Tekst` = 'dadsssldhkashdjasjkdkasjdhasdkas',`Użytkownik` = 'Marcina', `Klient` = 'dsa' WHERE `Terminarz`.`id` = '@ID' LIMIT 1 ;", mysqlCon);

            cmd.Parameters.AddWithValue("@ID", MySqlDbType.Int32).Value = Int32.Parse(cellid);
            cmd.Parameters.AddWithValue("@VALUE", MySqlDbType.VarChar).Value = value;


            try
            {
                mysqlCon.Open();
                cmd.ExecuteNonQuery();
                mysqlCon.Close();
                //MessageBox.Show(cmd.ToString());
                //MessageBox.Show("@ID @VALUE"); //this one displays @ID @VALUE instead of variable value.
                MessageBox.Show(cellid); //this one is working fine, but i don't know how to input this value into MySql query


            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

    }

MySql代碼本身正在運行,但是@ID和@VALUE不能正確顯示,它只是說@ID而不是整數,用@VALUE代替我的字符串值。 我正在重寫此代碼:naven.com.pl/cellendedit.jpg看起來一樣(或者是嗎?),它對作者有效,而對我而言,不是。

如您所讀,代碼MessageBox.Show(cellid); 正在工作,但不適用於@ID @VALUE變量。

我通過輸入正確的值而不是變量來檢查查詢,並且該查詢正在使用此代碼。

可能是什么原因?

問題:您已將命名參數括在單引號中。

解決方案:您需要刪除以下兩個參數周圍的單引號

@VALUE
@ID

替換為:

    MySqlCommand cmd = new MySqlCommand("UPDATE `naven1_terminarz`.
    `Terminarz` SET `Data` = '2014-03-06 00:00:00',`Autor` = '@VALUE',`Tekst` = 
      'dadsssldhkashdjasjkdkasjdhasdkas',`Użytkownik` = 'Marcina', `Klient` = 
                 'dsa' WHERE `Terminarz`.`id` = '@ID' LIMIT 1 ;", mysqlCon);

有了這個:

    MySqlCommand cmd = new MySqlCommand("UPDATE `naven1_terminarz`.
    `Terminarz` SET `Data` = '2014-03-06 00:00:00',`Autor` = @VALUE,`Tekst` = 
      'dadsssldhkashdjasjkdkasjdhasdkas',`Użytkownik` = 'Marcina', `Klient` = 
                 'dsa' WHERE `Terminarz`.`id` = @ID LIMIT 1 ;", mysqlCon);

嘗試

MySqlCommand cmd = new MySqlCommand("UPDATE `naven1_terminarz`.
    `Terminarz` SET `Data` = '2014-03-06 00:00:00',`Autor` = @VALUE,`Tekst` = 
      'dadsssldhkashdjasjkdkasjdhasdkas',`Użytkownik` = 'Marcina', `Klient` = 
                 'dsa' WHERE `Terminarz`.`id` = @ID LIMIT 1 ;", mysqlCon);

更正 :從@VALUE@ID刪除引號''

暫無
暫無

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

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