해결할 수없는 오류가 있습니다 ... 이유를 모르겠습니다.BLOB, SQL 데이터베이스 삽입
저는이 코드를 사용하여 데이터베이스에 파일을 업로드합니다. 지금 BLOB을 사용하고 싶습니다.
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 (최대)입니다. 쿼리의 DATA 필드에 대한 매개 변수는 업로드하려고하는 파일의 바이트입니다. "VARBINARY (최대)로 데이터 유형 VARCHAR에서 오류 암시 적 변환이 허용되지 않습니다이 쿼리를 실행하려면 CONVERT 함수를 사용합니다.."
누군가가 말해 왜 수 :
오류는 발생?
대단히 감사합니다.
코드는 단지 [SQL 주입 공격]을 구걸한다 (http://xkcd.com/327/). 매개 변수가있는 쿼리를 사용하십시오. – GvS