如何将datagridview中鼠标点击的某一行数据插入SQL server数据库
时间: 2024-05-06 18:20:30 浏览: 8
您可以遵循以下步骤将DataGridView中鼠标单击的某一行数据插入SQL Server数据库中:
1. 在单元格单击事件中获取所选行的所有列的值。
```csharp
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
string column1Value = row.Cells["Column1"].Value.ToString();
string column2Value = row.Cells["Column2"].Value.ToString();
// 获取所选行的其他列值
}
}
```
2. 在连接字符串中指定SQL Server数据库的详细信息。
```csharp
string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;";
```
3. 创建SqlConnection对象并打开连接。
```csharp
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// 在此处执行SQL INSERT语句将数据插入数据库中
}
```
4. 使用SqlCommand对象执行INSERT语句将数据插入数据库中。
```csharp
string query = "INSERT INTO myTable (Column1, Column2) VALUES (@param1, @param2)";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@param1", column1Value);
command.Parameters.AddWithValue("@param2", column2Value);
// 添加其他参数
command.ExecuteNonQuery();
}
```
5. 在适当的位置关闭SqlConnection对象。
```csharp
connection.Close();
```
完整代码示例:
```csharp
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
string column1Value = row.Cells["Column1"].Value.ToString();
string column2Value = row.Cells["Column2"].Value.ToString();
string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "INSERT INTO myTable (Column1, Column2) VALUES (@param1, @param2)";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@param1", column1Value);
command.Parameters.AddWithValue("@param2", column2Value);
command.ExecuteNonQuery();
}
connection.Close();
}
}
}
```