我对专业编程相对缺乏经验,但我正在尝试编写一个与MS Access数据库接口的程序。本质上,我正在收集表单中的信息,并尝试为每个条目以新行传递信息。我有一个开放的OleDbConnection,我的测试显示我能够看到哪一行将有新条目,但是当我点击提交按钮时,捕获中没有显示错误,但数据库保持不变。我最初的代码是通过点击事件调用的方法,但我只是将代码带到事件处理程序来验证问题是否与调用不同。在C#WinForm应用程序中写入数据库时遇到困难
private void btnSubmit_Click(object sender, EventArgs e)
{
if (DBConnection.State.Equals(ConnectionState.Closed))
{
DBConnection.Open();
}
try
{
MessageBox.Show("Save Data at index: " + intRowPosition.ToString());
OleDbCommand OledbInsert = new OleDbCommand("Insert INTO RetentionTable (DateTime,Center,CSP,MemberID,ContractNumber,RetentionType,RetentionTrigger,MemberReason,ActionTaken,Other) VALUES('" + DateTime.Now.ToString() + "','" + GetCenter("") + "','" + GetName("") + "','" + GetMemberID("") + "','" + GetContractNumber("") + "','" + GetType("") + "','" + GetTrigger("") + "','" + GetReason("") + "','" + GetAction("") + "', + GetOther("")," DBConnection);
intRowPosition++;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
MessageBox.Show(ex.StackTrace.ToString());
}
finally
{
RefreshDBConnection();
}
}
任何想法,为什么这不写作将不胜感激。
使用'String.Format'使您的查询更易于管理http://msdn.microsoft.com/zh-cn/library/ system.string.format。aspx – Mataniko
那么,你有多个问题,但[**请使用参数**](http://csharp-station.com/Tutorial/AdoDotNet/Lesson06)而不是构建SQL字符串! –