C# 如何从数据网格视图列表中插入值?

C# 如何从数据网格视图列表中插入值?,c#,ado.net,C#,Ado.net,它向我显示此错误关键字“Select”附近的不正确语法以清除员工ID在本例中是FK在表中(考勤详细信息),另一件事是我正在使用另一个表(员工信息)中的数据网格视图来显示我表单中的员工列表。然后,我想将每个选定的单元格值从数据网格视图传输到考勤明细表。10q private void time_in_Click(object sender, EventArgs e) { employee_InformationDataGridView.SelectedCells[0

它向我显示此错误关键字“Select”附近的不正确语法以清除员工ID在本例中是FK在表中(考勤详细信息),另一件事是我正在使用另一个表(员工信息)中的数据网格视图来显示我表单中的员工列表。然后,我想将每个选定的单元格值从数据网格视图传输到考勤明细表。10q

    private void time_in_Click(object sender, EventArgs e)
    {
        employee_InformationDataGridView.SelectedCells[0].Style.ForeColor = Color.Green;

            time_in.Enabled = false;
            time_out.Enabled = true;

            con = new SqlConnection(GlobalClass.conn);
            con.Open();
            SqlCommand cmd = new SqlCommand("Insert into Attendancedetail  Values(" + "Select from  EmployeeInformation(EmployeeID)" + ",'" + employee_InformationDataGridView.SelectedCells[0] + "','" + DateTime.Now.ToLongDateString() + "','" + null + "','" + null + "','" + DateTime.Now.ToLongTimeString() + "'," + null + ")", con);
            int i = cmd.ExecuteNonQuery();
            MessageBox.Show(i.ToString() + " record inserted");
    }

SQL查询的语法错误。语句要求您指定要返回的列。例如:

SELECT EmployeeID FROM EmployeeInformation

SQL查询的语法错误。语句要求您指定要返回的列。例如:

SELECT EmployeeID FROM EmployeeInformation

我同意@Darin,但是完整的语法是

插入Attendancedetail(列列表)从EmployeeInformation中选择列列表,其中employeeid='selected cells value'

在这样的语句中不使用Values关键字。如果Select返回所有需要的列,则第1列列表是可选的


有关更多示例,请参见

我同意@Darin,但完整语法是

插入Attendancedetail(列列表)从EmployeeInformation中选择列列表,其中employeeid='selected cells value'

在这样的语句中不使用Values关键字。如果Select返回所有需要的列,则第1列列表是可选的


有关更多示例,请参见

考虑使用参数化查询。编写这样的代码将导致sql注入


考虑使用参数化查询。编写这样的代码将导致sql注入


10q用于快速响应,但不起作用。它显示此错误关键字“Select”附近的语法不正确。“”附近的语法不正确。SqlCommand cmd=new SqlCommand(“插入Attendancedetail值(“+”从EmployeeInformation中选择EmployeeID“+”、“+null+”、“+null+”、“+null+”、“+DateTime.Now.ToLongTimeString()+”、“+null+”),con);10q用于快速响应,但不起作用。它向我显示此错误关键字“Select”附近的语法不正确。“”附近的语法不正确。SqlCommand cmd=new SqlCommand(“插入Attendancedetail值(“+”从EmployeeInformation中选择EmployeeID“+”、“+null+”、“+null+”、“+null+”、“+DateTime.Now.ToLongTimeString()+”、“+null+”),con);10q用于快速响应,但不起作用。它向我显示此错误关键字“Select”附近的语法不正确。“,”附近的语法不正确。SqlCommand cmd=new-SqlCommand(“插入Attendancedetail值(“+”从EmployeeInformation中选择员工,其中FullName=‘所选单元格值’+”、“+null+”、“+null+”、“+null+”、“+DateTime.Now.ToLongTimeString()+”、“+null+”),con);删除values关键字。select只返回一列,因此请在插入的表名后指定其名称(除非此Attendancedetail表只有一列)。考虑使用Management Studio(或您的DB的任何客户端程序)使语句正确,然后将其添加到代码中。并遵循@Raj关于使用参数化查询的建议。10q用于快速响应,但不起作用。它显示此错误关键字“Select”附近的语法不正确。“,”附近的语法不正确。SqlCommand cmd=new-SqlCommand(“插入Attendancedetail值(“+”从EmployeeInformation中选择员工,其中FullName=‘所选单元格值’+”、“+null+”、“+null+”、“+null+”、“+DateTime.Now.ToLongTimeString()+”、“+null+”),con);删除values关键字。select只返回一列,因此请在插入的表名后指定其名称(除非此Attendancedetail表只有一列)。考虑使用Management Studio(或您的DB的任何客户端程序)使语句正确,然后将其添加到代码中。并遵循@Raj关于使用参数化查询的建议。