在 C# 中使用 microsoft access 和 OleDb 在数据库中添加数据
Posted
技术标签:
【中文标题】在 C# 中使用 microsoft access 和 OleDb 在数据库中添加数据【英文标题】:Adding data in the database using microsoft access and OleDb in C# 【发布时间】:2013-03-23 11:52:10 【问题描述】:我是 OleDb 库的新手,我想使用该库将文本表单文本框添加到数据库中。 我的代码:
public partial class Form1 : Form
public Form1()
InitializeComponent();
private OleDbConnection conn = new OleDbConnection();
private void button1_Click(object sender, EventArgs e)
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Project\Learning\Visual C#\Form\WindowsFormsApplication1\WindowsFormsApplication1\Test.mdb";
string NAME = textBox1.Text;
conn.Open();
OleDbCommand cmmd = new OleDbCommand("INSERT into student(NAME)" + "VALUES(@NAME)", conn);
if (conn.State == ConnectionState.Open)
cmmd.Parameters.Add("@NAME", OleDbType.Char, 20);
cmmd.Parameters["@NAME"].Value = NAME;
try
cmmd.ExecuteNonQuery();
MessageBox.Show("DATA ADDED");
conn.Close();
catch (OleDbException expe)
MessageBox.Show(expe.Source);
else
MessageBox.Show("CON FAILED");
但它不起作用。 我在 C# 中找不到 OleDbCommand 的良好参考。 如何在我的代码中使用 OleDbCommand?
【问题讨论】:
什么不起作用?您在哪一行得到异常,异常是什么? 在我的 try catch 中,代码放入 catch 部分并在 Message Box 中显示“Microsoft Access 数据库引擎”。出了什么问题? 是的,但结果相同! 不,您是否更改了此代码的任何部分? 我更新了我的答案,我无法测试,但我认为这对你有用。 【参考方案1】:解决了
public Form1()
InitializeComponent();
private void button1_Click(object sender, EventArgs e)
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Project\Learning\Visual C#\Form\WindowsFormsApplication2\WindowsFormsApplication2\Test.mdb";
conn.Open();
string Name = textBox1.Text;
OleDbCommand cmmd = new OleDbCommand("INSERT INTO table1 (student) Values(@Name)", conn);
if (conn.State == ConnectionState.Open)
cmmd.Parameters.Add("@Name", OleDbType.VarWChar, 20).Value = Name;
try
cmmd.ExecuteNonQuery();
MessageBox.Show("DATA ADDED");
conn.Close();
catch (OleDbException expe)
MessageBox.Show(expe.Message);
conn.Close();
else
MessageBox.Show("CON FAILED");
【讨论】:
很高兴看到您解决了这个问题,如果您稍等片刻,您可以将其标记为答案。快乐编码:)【参考方案2】:也许这段代码可以帮助你
OleDbConnection dbConnection = new OleDbConnection(CONNECTION_STRING);
string commandString =
"INSERT INTO MeetingEntries (Subject, Location, Start Date, End Date, Enable Alarm, Repeat Alarm, Reminder, Repetition Type)" + " VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
OleDbCommand commandStatement = new OleDbCommand(commandString, dbConnection);
commandStatement.Parameters.Add("@Subject", OleDbType.VarWChar, 30).Value = currentEntry.Subject;
commandStatement.Parameters.Add("@Location", OleDbType.VarWChar, 50).Value = currentEntry.Location;
commandStatement.Parameters.Add("@Start Date", OleDbType.Date, 40).Value = currentEntry.StartDateTime.Date;
commandStatement.Parameters.Add("@End Date", OleDbType.Date, 40).Value = currentEntry.EndDateTime.Date;
commandStatement.Parameters.Add("@Enable Alarm", OleDbType.Boolean, 1).Value = currentEntry.IsAlarmEnabled;
commandStatement.Parameters.Add("@Repeat Alarm", OleDbType.Boolean, 1).Value = currentEntry.IsAlarmRepeated;
commandStatement.Parameters.Add("@Reminder", OleDbType.Integer, 2).Value = currentEntry.Reminder;
commandStatement.Parameters.Add("@Repetition Type", OleDbType.VarWChar, 10).Value = currentEntry.Repetition;
dbConnection.Open();
commandStatement.ExecuteNonQuery();
【讨论】:
以上是关于在 C# 中使用 microsoft access 和 OleDb 在数据库中添加数据的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# 中创建 Microsoft Access 数据库? [复制]
参考 Microsoft.Office.interop.access.dao.dll 导致错误 C#
在使用 C# 时对设置与 Microsoft Access 数据库的连接感到困惑
使用 Microsoft.Jet.OLEDB.4.0 从 C# 将行插入 Access db,自动编号列设置为零