gpt4 book ai didi

C# 以多种形式使用 MS Access 数据库

转载 作者:搜寻专家 更新时间:2023-10-30 23:37:26 24 4
gpt4 key购买 nike

我制作了一个包含 3 个表单的程序。我在第一种形式中使用了 Microsoft Access 数据库,它工作得很好,这是我使用的代码。

       public partial class newRegisteration : Form
{
private OleDbConnection connection = new OleDbConnection();
public newRegisteration()
{
InitializeComponent();
connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\OmarS_000\Documents\Visual Studio 2015\Projects\School System\School System\School.accdb;
Persist Security Info=False;";
}

private void button1_Click(object sender, EventArgs e)
{
try
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "INSERT into School ([Name], [Age], [Grade], [Class]) VALUES('" + nameTextBox2.Text + "', '" + ageTextBox2.Text + "', '" + gradeTextBox2.Text + "', '" + classTextBox2.Text + "') ";

command.ExecuteNonQuery();
MessageBox.Show("Data Saved");
connection.Close();
}
catch (Exception ex)
{
MessageBox.Show("Error" + ex);
Clipboard.SetText(ex.ToString());
}
}
}

现在在第二种形式中,当我将 GridView 数据库从数据源拖到形式时它不起作用,尽管它适用于第一种形式。我尝试编写代码来调用数据库的 GridView ,但它也没有用,我得到的只是数据库的空列,代码页中没有编写任何代码。当我复制代码并修改它以与新表单匹配时,它会收到错误意外处理程序。那么我该如何解决呢?我如何多次使用具有相同连接的数据库?

PS:我试过与同一个数据库建立另一个连接也没有用。

编辑:第二种形式的代码

      private void CurrentStudents_Load(object sender, EventArgs e)
{
using (OleDbConnection connection2 = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\OmarS_000\Documents\Visual Studio 2015\Projects\School System\School System\School.accdb;Persist Security Info=False;"))
{
OleDbCommand cmd = new OleDbCommand("Select * from School", connection2);
OleDbDataAdapter olda = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable();
olda.Fill(dt);
schoolDataGridView.DataSource = dt;
schoolDataGridView.AutoGenerateColumns = true;
}
}

最佳答案

您的数据库可能被锁定在其中一种形式。您应该尝试在 USING block 中 Access 您的连接,这样您就不需要显式关闭或处置您的连接对象。

using (OleDbConnection  connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\OmarS_000\Documents\Visual Studio 2015\Projects\School System\School System\School.accdb;Persist Security Info=False;"))
{
connection.Open();
//Your code goes here
}

关于C# 以多种形式使用 MS Access 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40075434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com