0

我收到此错误→</p>

未为字符串“插入 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 & "')")
4

2 回答 2

1

该错误说明了一切:(Byte()即字节数组)是一种根本不同的类型String,您不能将两者连接起来。如何解决这个问题取决于这些字节包含什么数据以及您想从中获得什么。如果字节包含编码的文本数据,该Encoding.GetString方法 可能会有所帮助。

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

于 2013-09-02T10:13:08.507 回答
0

在插入图像之前。

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

    将 img_b 调暗为 Byte() = dr("SP_Photo")
    将 img_stream 调暗为 IO.MemoryStream img_stream = 新 IO.MemoryStream(img_b) 将
    img 调暗为 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()

于 2013-09-03T05:26:19.400 回答