运营商'&'未定义字符串“Insert into Table_Name(XYZ_”并键入'Byte()'

时间:2013-09-02 09:48:42

标签: vb.net image byte photo

我收到此错误→

  

运营商'&'未定义字符串“插入SP_Master_Entry(SP_”并键入'Byte()'。

我认为这个错误是在dr(SP_Photo)附近引起的,对于VB.NET来说是非常新的

mainModule.DatabaseNonQuery("
    Insert into SP_Master_Entry 
     (SP_ID, SP_Name, Gender, Date_Of_Birth, Date_Of_Join, Branch_ID,
      SP_Area_ID, SP_Address1, SP_Address2, SP_Address3, PIN, Qualification,
      Contact_Number, SP_Photo, SP_Status, Caste, SHG_Member, Marital_Status,
      Salary, KYC_TYPE_ID, KYC_Code, Reference, Reference2, Agreement, Resigned,
      ResignedDate,delivery_status,allow_edit) 

    VALUES (" & dr("SP_ID") & ",'" & dr("SP_Name") & "','" & dr("Gender") & "','" 
      & dr("Date_Of_Birth") & "','" & dr("Date_Of_Join") & "'," 
      & dr("Branch_ID") & "," & dr("SP_Area_ID") & ",'" & dr("SP_Address1") 
      & "','" & dr("SP_Address2") & "','" & dr("SP_Address3") & "'," 
      & dr("PIN") & "," & dr("Qualification") & ",'" & dr("Contact_Number")
      & "'," & dr("SP_Photo") & ",'" & dr("SP_Status") & "','" & dr("Caste") 
      & "','" & dr("SHG_Member") & "','" & dr("Marital_Status") & "','" 
      & dr("Salary") & "'," & dr("KYC_TYPE_ID") & ",'" & dr("KYC_Code") 
      & "','" & dr("Reference") & "','" & dr("Reference2") & "','"
      & dr("Agreement") & "','" & dr("Resigned") & "','" & dr("ResignedDate") 
      & "','" & dr("delivery_status") & "','" & dr("allow_edit") & "','" 
      & Today.Date.ToString & "','" & Today.Date.ToString & "')")

2 个答案:

答案 0 :(得分:1)

错误说明了一切:Byte()(即一个字节数组)是与String根本不同的类型,你不能连接这两者。如何解决这个问题取决于这些字节包含的数据以及您希望从中获取的数据。 Encoding.GetString method 可以帮助,如果这些字节包含编码的文本数据。

更一般地说,您发布的代码超出了苍白。你可以写这样的代码,它完全不可读,因而一文不值。重构它。

答案 1 :(得分:0)

插入图像之前。

  1. 转换为字节数组,即dim imgbyte as byte = datarow(“Your Photo column”)
  2. 然后转换/构建内存流并为内存流构建映像
  3. 现在使用您构建的图像并在插入查询中使用它,如下所示

    Dim img_b As Byte()= dr(“SP_Photo”)
    Dim img_stream作为IO.MemoryStream img_stream =新的IO.MemoryStream(img_b)
    Dim img As Image = Image.FromStream(img_stream)

    Dim cmd As New SqlCommand(“update user_table_name set user_Photo = @ image where user_ID =”& dr(“SP_ID”),connstr)

    cmd.Parameters.Add(“@ image”,SqlDbType.Image,img_b.Length).Value = img_b

    cmd.ExecuteNonQuery()