所以我写了一些类似编辑器的东西,但我在一列中的每一行都有值更改的问题。我想改变一个特定的细胞而不是全部。我也使用了断点,我意识到当SqlCommand被定义并执行时会发生这种情况,但我不知道它为什么会发生?例如,我想要两个相同的值,但也希望它只更改在comboxo中选择的行中的值而不是所有行...
private void button1_Click(object sender, EventArgs e)
{
UpdateBase();
this.Close();
}
public string currentvalue = "";
public void UpdateBase()
{
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\JM\Documents\Kviz.mdf;Integrated Security=True;Connect Timeout=30");
if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 0)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 0);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 1)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 1);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 1);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 1);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 2)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 2);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 2);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 2);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 3)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 3);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 3);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 3);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 4)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 4);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 4);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 4);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 5)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 5);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 5);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 5);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 6)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 6);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 6);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 6);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 7)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 7);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 7);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 7);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 8)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 8);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 8);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 8);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 9)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 9);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 9);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 9);
}
}
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\JM\Documents\Kviz.mdf;Integrated Security=True;Connect Timeout=30");
public void setRadioButtonText(RadioButton RadioButton,string RadioButtonColumn, int row)
{
////Determine which radiobutton in datatable's row is selected
//!//
if (RadioButton.Checked == true)
{
//!//
RadioButton.Text = textBox1.Text;
////GET CURRENT VALUE
SqlDataAdapter ad = new SqlDataAdapter("SELECT * FROM Pitanja", con);
DataTable dt = new DataTable();
ad.Fill(dt);
//!// //!//
currentvalue = dt.Rows[row][RadioButtonColumn].ToString();
////GET CURRENT VALUE
//!// //!//
SqlCommand comnd = new SqlCommand("UPDATE Pitanja SET " + RadioButtonColumn + " = @textboxtext WHERE " + RadioButtonColumn + " LIKE '" + currentvalue + "'", con);
comnd.Parameters.AddWithValue("@textboxtext", textBox1.Text);
try
{
con.Open();
comnd.ExecuteNonQuery();
}
catch (SqlException ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
con.Close();
}
}
}
答案 0 :(得分:2)
您的问题在于代码的这一部分
currentvalue = dt.Rows[row][RadioButtonColumn].ToString();
////GET CURRENT VALUE
//!// //!//
SqlCommand comnd = new SqlCommand("UPDATE Pitanja SET " + RadioButtonColumn + " = @textboxtext WHERE " + RadioButtonColumn + " LIKE '" + currentvalue + "'", con);
comnd.Parameters.AddWithValue("@textboxtext", textBox1.Text);
您检索radiobuttoncolumn的值并更新所有' Pitanja'其中radiobuttoncolumn的值等于此值。由于数据库中的所有行都等于此值。它们都会更新。
您应该选择一个唯一值来过滤更新,例如您的ID列。 然后,只有具有该唯一ID的行才会更新。 它可能看起来有点像这样,但我没有测试过。
currentvalue = dt.Rows[row]["Id"].ToString();
////GET CURRENT VALUE
//!// //!//
SqlCommand comnd = new SqlCommand("UPDATE Pitanja SET " + RadioButtonColumn + " = @textboxtext WHERE Id = " + currentvalue, con);
comnd.Parameters.AddWithValue("@textboxtext", textBox1.Text);
答案 1 :(得分:0)
我尝试了发送HansVG的代码,但没有注意到HansVG所说的“因为数据库中的所有行都等于这个值。它们都将被更新。”所以我尝试使用Id,直到它工作为止。
以下是它的样子:
private void button1_Click(object sender, EventArgs e)
{
UpdateujBazu();
this.Close();
}
public string currentvalue = "";
public void UpdateujBazu()
{
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\JM\Documents\Kviz.mdf;Integrated Security=True;Connect Timeout=30");
if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 0)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 0,1);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 0,1);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 0,1);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 1)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 1,2);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 1,2);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 1,2);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 2)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 2,3);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 2,3);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 2,3);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 3)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 3,4);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 3,4);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 3,4);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 4)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 4,5);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 4,5);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 4,5);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 5)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 5,6);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 5,6);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 5,6);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 6)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 6,7);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 6,7);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 6,7);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 7)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 7,8);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 7,8);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 7,8);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 8)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 8,9);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 8,9);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 8,9);
}
else if (Povezivac_varijabli_Formama.edi.comboBox1.SelectedIndex == 9)
{
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton1, "RadioBtn1text", 9,10);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton2, "RadioBtn2text", 9,10);
setRadioButtonText(Povezivac_varijabli_Formama.edi.radioButton3, "RadioBtn3text", 9,10);
}
}
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\JM\Documents\Kviz.mdf;Integrated Security=True;Connect Timeout=30");
public void setRadioButtonText(RadioButton RadioButton,string RadioButtonColumn, int row,int ID)
{
////Determine which radiobutton in datatable's row is selected
//!//
if (RadioButton.Checked == true)
{
//!//
RadioButton.Text = textBox1.Text;
////GET CURRENT VALUE
SqlDataAdapter ad = new SqlDataAdapter("SELECT * FROM Pitanja", con);
DataTable dt = new DataTable();
ad.Fill(dt);
//!// //!//
currentvalue = dt.Rows[row][RadioButtonColumn].ToString();
////GET CURRENT VALUE
//!// //!//
SqlCommand comnd = new SqlCommand("UPDATE Pitanja SET " + RadioButtonColumn + " = '" + textBox1.Text + "'" + " WHERE " + RadioButtonColumn + " LIKE '" + currentvalue + "'" + " AND Id = '" + ID + "'", con);
try
{
con.Open();
comnd.ExecuteNonQuery();
}
catch (SqlException ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
con.Close();
}
}
}