C# access数据库 .mdb form1_load动态生成textBox1、textBox2、……,点击button1将textBox1、textBox2、……的Text保存到.mdb数据库中
时间: 2024-09-15 20:15:36 浏览: 102
在C#中,使用ADO.NET访问MDB(Microsoft Access Database)数据库并处理Form1_Load事件动态生成TextBox控件是一个常见的任务。以下是大致步骤:
1. 引入所需的命名空间:
```csharp
using System.Data.OleDb;
```
2. 在`Form1_Load`事件中动态创建TextBox控件:
```csharp
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < yourDesiredNumber; i++)
{
TextBox textBox = new TextBox();
textBox.Name = "textBox" + (i + 1); // 设置控件名称以便后续引用
tableLayoutPanel1.Controls.Add(textBox);
}
}
```
3. 创建一个按钮事件处理器(假设命名为button1_Click),在这个方法中保存TextBox的内容到数据库:
```csharp
private void button1_Click(object sender, EventArgs e)
{
foreach (Control control in tableLayoutPanel1.Controls)
{
if (control is TextBox textBox && !string.IsNullOrEmpty(textBox.Text))
{
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=yourDatabaseFile.mdb";
string query = $"INSERT INTO YourTable (ColumnName) VALUES ('{textBox.Text}')"; // 替换实际表名和列名
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
try
{
OleDbCommand command = new OleDbCommand(query, connection);
command.ExecuteNonQuery();
MessageBox.Show($"'{textBox.Name}' 的内容已保存到数据库。");
}
catch (Exception ex)
{
MessageBox.Show($"保存失败: {ex.Message}");
}
connection.Close();
}
}
}
}
```
请注意替换`connectionString`中的数据库路径、表名和列名,以及在查询字符串中的相应字段。同时,确保对数据库操作异常有适当的处理。
最后别忘了在`
阅读全文