我正在使用 Visual Studio 2008,我的目标设备是 WINCE 设备。
在将任何值插入 SQL Server 数据库时,出现错误“解析查询错误 [令牌行号 = 1 令牌行偏移 = 29 错误中的令牌 = 1]”。
经过多次跟踪后,我发现了我的错误实际上在哪里。早些时候,在给出列名时,我把它命名为 "Ch 1" , "Ch 2" 。我只是更改了我的列名并将其设置为“Ch1”和“Ch2”,即我删除了空格并且它起作用了。
这是我的工作代码
private void btnInsert_Click(object sender, EventArgs e)
{
SqlCeCommand cmd = con.CreateCommand();
cmd.CommandText = "INSERT INTO Tb (Ch1, Chl2) VALUES (?, ?)";
cmd.Parameters.Add(new SqlCeParameter("p1", SqlDbType.NText));
cmd.Parameters.Add(new SqlCeParameter("p2", SqlDbType.Int));
cmd.Parameters["p1"].Size = 50;
cmd.Prepare();
cmd.Parameters["p1"].Value =textBox1.Text;
cmd.Parameters["p2"].Value =textBox2.Text;
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
displayTable();
}
private void displayTable()
{
SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM Tb", con1);
SqlCeDataReader reader = cmd.ExecuteReader();
DataTable table = new DataTable();
table.Columns.Add("Ch1", typeof(int));
table.Columns.Add("Ch2", typeof(string));
while (reader.Read())
{
table.Rows.Add(reader.GetInt32(0), reader.GetString(1));
}
reader.Close();
dataGrid1.DataSource = table;
}
希望它会帮助你。
有关详细信息,请参阅下面的链接
http://technet.microsoft.com/en-us/library/aa226134%28v=sql.80%29.aspx