C# 如何在SQLServer2005中将文件插入图像数据类型
我正在尝试使用内联查询将文件保存为图像数据类型C# 如何在SQLServer2005中将文件插入图像数据类型,c#,sql-server-2005,C#,Sql Server 2005,我正在尝试使用内联查询将文件保存为图像数据类型 INSERT INTO tblPDFInfo(FileImage, PdfFileName, FeedDateTime, HasProcessed) VALUES(@fileBytes, @fileName, getutcdate(), 0) 然后,如果我使用string.format,那么它将字节数组呈现为string,因此它不会带来好运 另一种方法是,如果我创建一个sqlcommand并 objCmd = new SqlCommand(
INSERT INTO tblPDFInfo(FileImage, PdfFileName, FeedDateTime, HasProcessed)
VALUES(@fileBytes, @fileName, getutcdate(), 0)
然后,如果我使用string.format,那么它将字节数组呈现为string,因此它不会带来好运
另一种方法是,如果我创建一个sqlcommand并
objCmd = new SqlCommand(strSQL, objConn, objTrans);
objFileDataParam = new SqlParameter("@fileBytes", SqlDbType.Image);
objFileDataParam.Value = (byte[])fileData;
objCmd.Parameters.Add(objFileDataParam);
objFileNameParam = new SqlParameter("@fileName", SqlDbType.VarChar);
objFileNameParam.Value = PDFfileName;
objCmd.Parameters.Add(objFileNameParam);
objCmd.CommandText = strSQL;
然后,当启动查询时,它会说
System.Data.SqlClient.SqlException:必须声明标量变量
@文件字节
如果在内联查询中我声明了相同的变量,那么它也会给我错误提示
System.Data.SqlClient.SqlException:变量名“@fileBytes”
已经申报了。变量名在一个变量中必须是唯一的
查询批处理或存储过程
我怎样才能纠正这一点,使其发挥作用。我没有绑定到特定的数据类型,但我需要保存文件,然后再检索它,我认为图像数据类型是一个不错的选择,但无法实现。任何建议都会很有帮助。试试这个
string strSql="INSERT INTO tblPDFInfo (FileImage,PdfFileName,FeedDateTime,HasProcessed)
values(@fileBytes,@fileName,@getutcdate,@hasprocessed)";
byte []bytes=(byte[])fileData;
objCmd = new SqlCommand(strSQL, objConn, objTrans);
objCmd.Parameters.Add("@fileBytes", SqlDbType.Image,bytes.Length).Value=bytes;
objCmd.Parameters.Add("@fileName", SqlDbType.VarChar,100).Value=PDFfileName;
objCmd.Parameters.Add("@getutcdate", SqlDbType.DateTime).Value=DateTime.Now;
objCmd.Parameters.Add("@hasprocessed", SqlDbType.Bit).Value=0;
objCmd.ExecuteNonQuery();
谢谢你的回复。对于ExecuteOnQuery,我得到-1作为返回值,而对于ExecuteCalar,我得到0作为返回值。