none
SQL语句参数查询语法错误。 RRS feed

  • 问题

  • <strong>二进制存文件SQL = "INSERT INTO @R表名称(@R数据字段) VALUES(@缓冲区) where @R标识字段 = @R行标"</strong>
            Dim 存二进制文件命令 As New OleDb.OleDbCommand(二进制存文件SQL, 存二进制文件数据库连接)
            存二进制文件命令.Parameters.Add("@R表名称", OleDbType.BSTR)
            存二进制文件命令.Parameters("@R表名称").Value = 表名称
            存二进制文件命令.Parameters.Add("@R数据字段", OleDbType.BSTR)
            存二进制文件命令.Parameters("@R数据字段").Value = 数据字段
            存二进制文件命令.Parameters.Add("@缓冲区", OleDbType.Binary)
            存二进制文件命令.Parameters("@缓冲区").Value = 内存流
            存二进制文件命令.Parameters.Add("@R标识字段", OleDbType.BSTR)
            存二进制文件命令.Parameters("@R标识字段").Value = 标识字段
            存二进制文件命令.Parameters.Add("@R行标", OleDbType.BSTR)
            存二进制文件命令.Parameters("@R行标").Value = 行标
            存二进制文件命令.ExecuteNonQuery()
            存二进制文件数据库连接.Close()
    

    查询子句不完整!
    http://hi.baidu.com/useek/blog
    2012年2月6日 16:17

答案

  • @R表名称(@R数据字段) 、@R标识字段

    表名、字段名没在用参数的,而且Insert into應該不用where @R标识字段 = @R行标

    给您一个Sample Code:

       ' 將文件儲存到數據庫 Binary 字段中  
            Dim filename = "c:\demo.txt"
            Dim fs As New FileStream(filename, FileMode.Open)
    
            ' 用來儲存文件的 byte 數組 
            Dim buffer(fs.Length) As Byte
            fs.Read(buffer, 0, buffer.Length)
            fs.Close()
    
            Dim conn = New OleDbConnection()
            conn.ConnectionString = ""
            Dim cmd = New OleDbCommand()
            cmd.Connection = conn
            cmd.CommandText = "INSERT into yourTable(Body) VALUES(@Body)"
            cmd.Parameters.Add("@Body", OleDbType.Binary)
            cmd.Parameters("@Body").Value = buffer
    
    
            '儲存至DB
            conn.Open()
            cmd.ExecuteNonQuery()
            conn.Close()
    



    2012年2月6日 17:37
  • 同意Shadow And Happy的意见!

    建议:

    1)表名和字段名尝试使用固定写法,或者是字符串拼接方式(可能根据需要条件判断,在if中完成)。

    2)其它具体参数可以使用OleDbParameter完成。


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    • 已标记为答案 firedream 2012年2月7日 4:33
    2012年2月7日 2:48
    版主

全部回复

  • @R表名称(@R数据字段) 、@R标识字段

    表名、字段名没在用参数的,而且Insert into應該不用where @R标识字段 = @R行标

    给您一个Sample Code:

       ' 將文件儲存到數據庫 Binary 字段中  
            Dim filename = "c:\demo.txt"
            Dim fs As New FileStream(filename, FileMode.Open)
    
            ' 用來儲存文件的 byte 數組 
            Dim buffer(fs.Length) As Byte
            fs.Read(buffer, 0, buffer.Length)
            fs.Close()
    
            Dim conn = New OleDbConnection()
            conn.ConnectionString = ""
            Dim cmd = New OleDbCommand()
            cmd.Connection = conn
            cmd.CommandText = "INSERT into yourTable(Body) VALUES(@Body)"
            cmd.Parameters.Add("@Body", OleDbType.Binary)
            cmd.Parameters("@Body").Value = buffer
    
    
            '儲存至DB
            conn.Open()
            cmd.ExecuteNonQuery()
            conn.Close()
    



    2012年2月6日 17:37
  • 同意Shadow And Happy的意见!

    建议:

    1)表名和字段名尝试使用固定写法,或者是字符串拼接方式(可能根据需要条件判断,在if中完成)。

    2)其它具体参数可以使用OleDbParameter完成。


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    • 已标记为答案 firedream 2012年2月7日 4:33
    2012年2月7日 2:48
    版主