Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在sqlserver db中针对datagridview 1行插入数据期间选择多个值_C#_Sql Server_Datagridview - Fatal编程技术网

C# 在sqlserver db中针对datagridview 1行插入数据期间选择多个值

C# 在sqlserver db中针对datagridview 1行插入数据期间选择多个值,c#,sql-server,datagridview,C#,Sql Server,Datagridview,我在sqlserver中有三个产品购买和销售表。 否我想在销售表中插入数据 采购表 销售表格 销售表 我想从销售数量大于0的采购表中获取采购发票号和批次号,并在使用Datagridview销售表单在销售表中进行插入查询时,根据每个项目代码和每个Datagridview行获取till sum。因此,我使用下面给定的查询,这无助于解决此问题。下面给定的查询生成双值错误 try { SqlConnection conn = new SqlConnectio

我在sqlserver中有三个产品购买和销售表。 否我想在销售表中插入数据

采购表

销售表格

销售表

我想从销售数量大于0的采购表中获取采购发票号和批次号,并在使用Datagridview销售表单在销售表中进行插入查询时,根据每个项目代码和每个Datagridview行获取till sum。因此,我使用下面给定的查询,这无助于解决此问题。下面给定的查询生成双值错误

try
        {

            SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=mateenwin;User ID=sa;Password=123");
            conn.Open();

                SqlCommand commandd = new SqlCommand("Select max(Sale_Invoice_No) from Sale", conn);

            if (string.IsNullOrEmpty(commandd.ExecuteScalar().ToString()))
            {
                InvoiceNo = Convert.ToInt32(1);

            }
            else
            {
                int tig =Convert.ToInt32( 1);

                InvoiceNo = Convert.ToInt32(commandd.ExecuteScalar()) +tig;
            }
            foreach (DataGridViewRow row in saved.dataGridView1.Rows)
            {


                if (row.IsNewRow) continue;


                SqlConnection cons = new SqlConnection("Data Source=.;Initial Catalog=mateenwin;User ID=sa;Password=123");

                SqlCommand command = new SqlCommand("Insert into Sale (Sale_Invoice_No,Payment_Type_ID,Customer_ID,Sale_Reference,Sale_Remarks,Item_Code,Item_Sale_Quantity,Item_Unit_RetailPrice,Sale_Item_Discount,Item_Discount_Amount,Item_Payable_Amount,Cash_Received,Return_Amount,Login_ID,User_ID,Item_Pur_InvoiceNo,Sale_Entry_Date)Values ('" + InvoiceNo + "','" + saved.comboBox1.SelectedValue + "','" + saved.comboBox2.SelectedValue + "','" + saved.textBox3.Text + "','" + saved.textBox4.Text + "','" + row.Cells[6].EditedFormattedValue + "','" + row.Cells[1].EditedFormattedValue + "','" + row.Cells[2].EditedFormattedValue + "','" + row.Cells[3].EditedFormattedValue + "','" + row.Cells[4].EditedFormattedValue + "','" + row.Cells[5].EditedFormattedValue + "','" + saved.textBox10.Text + "','" + saved.textBox11.Text + "','" + saved.comboBox3.SelectedValue + "','" + this.comboBox2.SelectedValue + "',(Select DISTINCT Pur_Invoice_No IN (Select DISTINCT Pur_Invoice_No from Purchase where Purchase.Item_Code ='" + row.Cells[6].EditedFormattedValue + "')),  GetDate())", cons);

                cons.Open();


                using (cons)
                {

                    command.ExecuteNonQuery();
                }

            }
            MessageBox.Show("Invoice successfully Saved");

任何人都可以帮助我。

在做任何其他事情之前,您需要阅读、理解并开始使用参数化查询。您的代码是sql注入的教科书示例。至于你手头的实际问题,这里是一个很好的起点。如果确实希望在应用程序中创建insert语句,而不是在SQL Server中使用存储过程,则应首先在SSMS中编写该语句,直到其正常工作。之后,您可以在应用程序中实现它。但是要注意SQL注入。在与“MessageBox.Show”相同的方法/类中看到“SqlConnection”会让我的眼睛受伤。在执行任何其他操作之前,您需要阅读、理解并开始使用参数化查询。您的代码是sql注入的教科书示例。至于你手头的实际问题,这里是一个很好的起点。如果确实希望在应用程序中创建insert语句,而不是在SQL Server中使用存储过程,则应首先在SSMS中编写该语句,直到其正常工作。之后,您可以在应用程序中实现它。但是要注意SQL注入。在与“MessageBox.Show”相同的方法/类中看到“SqlConnection”会让我的眼睛受伤。