为数据网格中的列指定变量名称

本文关键字:变量名 数据 数据网 网格 | 更新日期: 2023-09-27 18:33:38

我在 DataSet 的 DataGrid 中显示了数据。现在我想将其中的一列插入到 SQL 表中。我可以在数据集中为我需要的列一个变量名称并在插入命令中调用它吗?

创建新的数据集以保存工作表中的信息。

DataSet objDataset1 = new DataSet();
// Fill the DataSet with the information from the worksheet.
objAdapter1.Fill(objDataset1, "XLData");
// Bind data to DataGrid control.
dgCodeDisp.ItemsSource = objDataset1.Tables[0].DefaultView;
sc.Open();

插入命令

cmd = new SqlCommand("Insert into Table (Code, v1, v2, ID) values('" +dgCodeDisp    + "','" + v1.IsChecked.ToString() + "','" + v2.IsChecked.ToString() + "', '" + txtId.Text + "')", sc);
cmd.ExecuteNonQuery();

为数据网格中的列指定变量名称

根据 SQL(SqlServer、MySQL 等),您应该使用参数化查询,否则您可以对 sql 注入敞开大门。 对于 SQL Server,它通常会在发送命令时将"@"识别为解析的参数引用... 仅为了澄清起见,我将参数命名为"@parm",因此您可以遵循它,而不是在谈论表的实际列并引起混淆。

cmd = new SqlCommand("Insert into Table (Code, v1, v2, ID) values( @parmCode, @parmV1, @parmV2, @parmID )", sc );
cmd.Parameters.Add( "@parmCode", dgCodeDisp );
cmd.Parameters.Add( "@parmV1", v1.IsChecked.ToString() );
cmd.Parameters.Add( "@parmV2", v2.IsChecked.ToString() );
cmd.Parameters.Add( "@parmID", txtId.Text );
cmd.ExecuteNonQuery();