在C#中,要使用DataGridView新增一条记录并保存到数据库,你需要执行以下步骤:
1、确保你的DataGridView绑定到了一个数据源,如DataTable或BindingList。
2、当用户在DataGridView中填写数据时,新记录会自动出现在数据源中。
3、使用事件处理程序(如按钮点击事件)来保存数据源的更改到数据库。
以下是一个简单的示例代码,展示如何将DataGridView中的更改保存到SQL Server数据库:
private void SaveButton_Click(object sender, EventArgs e)
{
// 假设你的DataGridView绑定到了名为dataTable的DataTable
DataTable dataTable = (DataTable)dataGridView.DataSource;
// 使用事务处理确保操作的原子性
using (SqlConnection conn = new SqlConnection("你的连接字符串"))
{
conn.Open();
SqlTransaction transaction = conn.BeginTransaction();
try
{
// 遍历DataTable中的所有行
foreach (DataRow row in dataTable.Rows)
{
if (row.RowState == DataRowState.Added || row.RowState == DataRowState.Modified)
{
// 创建SQL INSERT或UPDATE语句
string sqlCommand = row.RowState == DataRowState.Added ? GetInsertCommand(row) : GetUpdateCommand(row);
using (SqlCommand command = new SqlCommand(sqlCommand, conn, transaction))
{
// 执行SQL命令
command.ExecuteNonQuery();
}
}
}
// 提交事务
transaction.Commit();
}
catch (Exception ex)
{
// 出现异常时回滚事务
transaction.Rollback();
MessageBox.Show(ex.Message);
}
}
}
// 根据DataRow创建插入命令的辅助方法
private string GetInsertCommand(DataRow row)
{
// 构建INSERT语句
// 假设你的表名为YourTable,字段为Field1, Field2等
return $"INSERT INTO YourTable (Field1, Field2) VALUES ('{row["Field1"]}', '{row["Field2"]}')";
}
// 根据DataRow创建更新命令的辅助方法
private string GetUpdateCommand(DataRow row)
{
// 构建UPDATE语句
// 假设你的表名为YourTable,主键字段为ID
return $"UPDATE YourTable SET Field1 = '{row["Field1"]}', Field2 = '{row["Field2"]}' WHERE ID = {row["ID"]}";
}
请注意,你需要根据你的数据库表结构、字段类型和安全性需求修改上述代码。特别是,直接将用户输入拼接到SQL语句中可能会使你的应用程序容易受到SQL注入攻击,因此在实际应用中应使用参数化查询。
查看更多关于教您用ASP.NET的CS开发中使用C#把在DataGridView所新增一条记录保存到数据库的方法的详细内容...