C#Sql列名无效

时间:2014-05-11 11:37:38

标签: c# sql

private void button4_Click_1(object sender, EventArgs e)
    {
        string s = textBox1.Text;

        string s1 = comboBox1.Text;
        string s2 = comboBox2.Text;
        SqlCeConnection conn = new SqlCeConnection(@"Data Source=D:\Desktop\DB2\DB2\Database1.sdf");
        try
        {
            conn.Open();
            SqlCeCommand cmd = new SqlCeCommand(" update Kambariai set Klientas=[s]  Where [Kambario rūšis]=[s1]  ", conn);
            cmd.ExecuteNonQuery();
            toolStripStatusLabel1.Text = "Duomenys įrašyti";
            conn.Close();
        }
        catch (Exception ee)
        {
            MessageBox.Show(ee.Message);
        }
    }

Image

我正在尝试使用Klientas更新textbox1.Text值来更新我的数据表,该值string = s。它应该可以正常工作但是我得到一个错误,指出列名无效Column = s1。不应将s1定位为列名,而应将其用作列行值。

这是过时的图像Kliento ID更改为Klientas

2 个答案:

答案 0 :(得分:1)

试试这个:

SqlCeCommand cmd = new SqlCeCommand("update Kambariai set Klientas="+s+"  Where [Kambario rūšis]='"+s1+"' ", conn);

<强>分析:

根据您的尝试,cmd的价值如下:

update Kambariai set Klientas=s Where [Kambario rūšis]=s1

通过在其周围放置适当的双引号和单引号,值将如下:

update Kambariai set Klientas=1 Where [Kambario rūšis]='bar'

旁注:

我不推荐这种方法,因为它增加了SQL注入的风险。改为使用参数化查询。

答案 1 :(得分:1)

试试这个:

     SqlCeCommand cmd = new SqlCeCommand(" update Kambariai set Klientas='" + s +"'  Where [Kambario rūšis]='" + s1 + "'", conn);