【发布时间】:2015-10-04 23:12:04
【问题描述】:
我正在尝试将用户输入添加到本地数据库,使用测试框、组合框、复选框、选中列表框和数据选择器,但它真的没有发挥作用。
我收到 SQLException 未处理的错误声明
解析查询时出错。 [令牌行号 = 1,令牌行偏移量 = 261,错误令牌 = End ]' 在 `cmd.ExecuteNonQuery();
我的代码如下,有人知道我哪里出错了吗?
private void button1_Click(object sender, EventArgs e)
{
string query = "INSERT INTO OMTracker (ProjectNumber, ProjectTitle, ProjectDescription, Client, EndUser, ContractManager, Engineer, DocumentsNeeded, CompletedDate, IssuedDate, ContractDiary, Revision, Comments) VALUES (@ProjectNumber, @ProjectTitle, @ProjectDescription, @Client, @EndUser, @ContractManager, @Engineer, @DocumentsNeeded, @CompletedDate, @IssuedDate, @ContractDiary, @Revision, @Comments)";
string connectionString = @"Data Source=|DataDirectory|\OMTrackerDatabase.sdf;Persist Security Info=True";
SqlCeConnection connection = new SqlCeConnection(connectionString);
connection.Open();
SqlCeCommand cmd = new SqlCeCommand(query, connection);
string Documents = DocumentsNeeded.CheckedItems.ToString();
cmd.Parameters.AddWithValue("@ProjectNumber", ProjectNumber.Text);
cmd.Parameters.AddWithValue("@ProjectTitle", ProjectTitle.Text);
cmd.Parameters.AddWithValue("@ProjectDescription", ProjectDescription.Text);
cmd.Parameters.AddWithValue("@Client", Client.Text);
cmd.Parameters.AddWithValue("@EndUser", EndUser.Text);
cmd.Parameters.AddWithValue("@ContractManager", ContractManager.SelectedValue);
cmd.Parameters.AddWithValue("@Engineer", Engineer.SelectedValue);
cmd.Parameters.AddWithValue("@DocumentsNeeded", Documents);
cmd.Parameters.AddWithValue("@Revision", Revision.Text);
cmd.Parameters.AddWithValue("@CompletedDate", CompletedDate.Value);
cmd.Parameters.AddWithValue("@IssuedDate", IssuedDate.Text);
cmd.Parameters.AddWithValue("@ContractDiary", ContractDiary.Checked ? 1 : 0);
cmd.Parameters.AddWithValue("@Comments", Comments.Text);
cmd.ExecuteNonQuery();
MessageBox.Show("Entry Added.");
this.Close();
}
任何帮助将不胜感激,谢谢。
【问题讨论】:
-
DocumentsNeeded.CheckedItems.ToString()变成了什么?另外,您是否查看了分析器以查看您生成的查询? -
您好,感谢您的回复。它将 CheckedListBox 中的许多选中项转换为字符串,以便可以将其用作参数值。抱歉,我对编码有点陌生,什么是分析器?
-
Engineer.SelectedValue 和 ContractManager.SelectedValue 的 C# 类型是什么? Engineer、ContractManager 和 ContractDiary 的 SQL 数据表类型有哪些?
-
嗨涂鸦。 'Engineer' 是一个组合框,是 DataTable 上的一个 Combobox 类型。 'ContractManager' 也一样。 ContractDiary 是 Checkbox,是 DataTable 的 Checkbox 类型。
标签: c# database parsing local sqlexception