【发布时间】:2013-10-09 14:57:13
【问题描述】:
我开始了解C#,并且在使用点击按钮时无法将文本框中的信息插入Access 数据库。
我遇到的问题是在添加过程中。代码执行Try... Catch 部分,然后返回错误提示“Microsoft Access 数据库引擎”并且没有给出任何线索。
代码如下:
namespace WindowsFormsApplication1
{
public partial class FormNewUser : Form
{
public FormNewUser()
{
InitializeComponent();
}
private void BTNSave_Click(object sender, EventArgs e)
{
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\kenny\Documents\Visual Studio 2010\Projects\Copy Cegees\Cegees\Cegees\Login.accdb";
String Username = TEXTNewUser.Text;
String Password = TEXTNewPass.Text;
OleDbCommand cmd = new OleDbCommand("INSERT into Login (Username, Password) Values(@Username, @Password)");
cmd.Connection = conn;
conn.Open();
if (conn.State == ConnectionState.Open)
{
cmd.Parameters.Add("@Username", OleDbType.VarChar).Value = Username;
cmd.Parameters.Add("@Password", OleDbType.VarChar).Value = Password;
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("Data Added");
conn.Close();
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Source);
conn.Close();
}
}
else
{
MessageBox.Show("Connection Failed");
}
}
}
}
【问题讨论】:
-
试试 MessageBox.Show(ex.Message);你可能会得到一个更容易理解的信息
-
对于
OleDbConnection和OleDbCommand,您需要一些usingstatements。你在对密码进行加盐和哈希处理吗? -
使用这些伙伴使用系统;使用 System.Collections.Generic;使用 System.Data.OleDb;使用 System.ComponentModel;使用 System.Data;使用 System.Drawing;使用 System.Linq;使用 System.Text;使用 System.Windows.Forms;
-
并将 conn.Close() 移动到 finally
标签: c# database winforms ms-access-2007