解析SQL Server CE上的查询时出错

时间:2012-09-22 05:20:19

标签: c# sql-server-ce

我在SQL Server CE中有关插入操作的问题,这是例外

enter image description here

这些是我的代码:

private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            perintahsql = new SqlCeCommand("INSERT INTO lokasi (Campus, Address, Phone 1, Phone 2, Phone 3, Fax, Ext.number, Longitude, Latitude, Maps) VALUES (@Campus, @Address, @Phone 1, @Phone 2, @Phone 3, @Fax, @Ext.number, @Longitude, @Latitude, @Maps)", koneksi);
            perintahsql.Parameters.AddWithValue("@Campus", comboBox1.Text);
            perintahsql.Parameters.AddWithValue("@Address", textBox1.Text);
            perintahsql.Parameters.AddWithValue("@Phone 1", textBox2.Text);
            perintahsql.Parameters.AddWithValue("@Phone 2", textBox3.Text);
            perintahsql.Parameters.AddWithValue("@Phone 3", textBox4.Text);
            perintahsql.Parameters.AddWithValue("@Fax", textBox5.Text);
            perintahsql.Parameters.AddWithValue("@Ext. number", textBox6.Text);
            perintahsql.Parameters.AddWithValue("@Longitude", textBox7.Text);
            perintahsql.Parameters.AddWithValue("@Latitude", textBox8.Text);
            perintahsql.Parameters.AddWithValue("@Maps", textBox9.Text);
            koneksi.Open();
            perintahsql.ExecuteNonQuery();
            koneksi.Close();
        }
        catch (SqlCeException ex)
        {
            MessageBox.Show("Whoopss!! " + ex, "SQL Server CE Exception Message");
        }
    }

如何修复该错误?谢谢。

2 个答案:

答案 0 :(得分:1)

您不能在列名和变量名中包含空格。如果您在记事本++中打开插入语句(或手动计数),您会发现字符44是“电话1”中的第一个空格。

“INSERT INTO lokasi(校园,地址,电话”

答案 1 :(得分:1)

尝试重命名变量,SQL不允许带空格的变量。 将变量@Phone 1更改为@ Phone1等以及@Ext。编号为@ExtNumber。希望它能解决您的疑问。