我有一个错误,我无法修复...我真的不知道为什么。我正在使用此代码tu上传一个文件在我的数据库中,我想现在使用BLOB。BLOB,插入SQL数据库
if (FileUpload1.HasFile)
try
{
//FileUpload1.SaveAs("C:\\inetpub\\wwwroot\\ClientPortalCs\\"
//+ GetTheCurrentDirectory(MyTreeView.SelectedNode)
//+ "\\" + FileUpload1.FileName);
//LabelFile.Text = "File name: " +
//FileUpload1.PostedFile.FileName + "<br>" +
//FileUpload1.PostedFile.ContentLength + " kb<br>" +
//"Content type: " + FileUpload1.PostedFile.ContentType;
dbConnection.Open();
dynamic queryString = ("INSERT INTO Files (Name,Path,UserUpload,Date,Data) VALUES ('"
+ FileUpload1.FileName + "','" + GetTheCurrentDirectory(MyTreeView.SelectedNode) + "','" + Request.Cookies["UserSettings"]["UserName"] + "','" + DateTime.Now + "','" + FileUpload1.FileBytes + "');"
+ "SELECT CAST(scope_identity() AS int)");
SqlCommand theCommand1 = new SqlCommand(queryString, dbConnection);
int newFid = (Int32)theCommand1.ExecuteScalar();
dynamic queryStringFolder = ("INSERT INTO FILES_FOLDERS (Folder_Id,File_Id) VALUES ('"
+ MyTreeView.SelectedValue + "'," + "'" + newFid + "')");
theCommand1 = new SqlCommand(queryStringFolder, dbConnection);
theCommand1.ExecuteNonQuery();
dbConnection.Close();
}
在我的数据库中,表格文件中的字段DATA是一个varbinary(max)。 查询中的DATA字段参数是我尝试上传的文件的字节数。
的出错是: “从数据类型为varchar到VARBINARY(最大值)错误隐式转换是不允许使用CONVERT函数来运行此查询。”
有人能告诉我为什么吗?
非常感谢。
这样的代码只是乞讨[SQL注入攻击(http://xkcd.com/327/)。请使用参数化查询。 – GvS