如何使用参数化的sql插入记录?

时间:2018-01-20 09:20:52

标签: vb.net

如何使用字符串连接在sql server数据库中使用惰性记录?

下面是我使用字符串连接的代码,它给出了如下错误:

  1. 无法在某些客户端计算机中插入记录。
  2. 无法将记录插入某些计算机,但可以搜索数据 数据库中。

          conn.Open()
          Dim cmd As SqlCommand = conn.CreateCommand
      cmd.CommandText = String.Format("insert into 
      LimoDatabase(Product_Number,Product_Description,Scan_Date,
      Employee_Id,Serial_Number,PCno)values('{0}','{1}','{2}',
      '{3}','{4}','{5}')", txtProdNum.Text, txtProdDscrp.Text, 
        txtScanDate.Text, txtEmpId.Text, 
          txtSerialNum.Text, cmb_PCno.Text)
          Dim AffectedRows As Integer = cmd.ExecuteNonQuery()
            If AffectedRows > 0 Then
                            loaddata()
                            txtSerialNum.Text = ""
                            counter = counter + 1
                            lblCounter.Text = counter
                        End If
                        conn.Close()
    
                    End If
    

1 个答案:

答案 0 :(得分:0)

嗨chetan感谢您的建议我使用参数化的sql而不是使用字符串在insert中更改了我的代码。现在它的作品。

我在insert函数中修改了我的代码,如下所示。

'插入记录

Private Sub insertSerial()
    SQL.AddParam("@productNumber", txtProdNum.Text)
    SQL.AddParam("@productDescription", txtProdDscrp.Text)
    SQL.AddParam("@employee", txtEmpId.Text)
    SQL.AddParam("@serialNumber", txtSerialNum.Text)
    SQL.AddParam("@pcNo", cmb_PCno.Text)

    SQL.ExecQuery("INSERT INTO LimoDatabase (Product_Number,Product_Description,Employee_Id,Serial_Number,PCno,Scan_Date) " & _
                  "VALUES(@productNumber,@productDescription,@employee,@serialNumber,@pcNo,GETDATE());")
    If SQL.HasException(True) Then Exit Sub
    txtSerialNum.Text = ""


End Sub