我在頁面上有一個文件上傳控件和一個「上傳」按鈕。我正在嘗試編寫上傳文件到我的數據庫的代碼。無法綁定多路徑標識符「xxx」
請找到下面的代碼: -
if (FileUpload1.HasFile)
{
string fileextention = System.IO.Path.GetExtension(FileUpload1.FileName);
if (fileextention == ".doc" || fileextention == ".docx")
{
string filename = System.IO.Path.GetFileName(FileUpload1.FileName);
//Upload file
FileUpload1.SaveAs(Server.MapPath("~/DocumentCollection/") + filename);
string fullpath = "DocumentCollection/" + filename;
string query = "insert into dbo.DocumentMaster(Name,Path) values(" + filename + "," + "DocumentCollection/" + filename + ");";
SqlDataAdapter objda = new SqlDataAdapter(query, objcon);
objcon.Open();
objda.SelectCommand.ExecuteNonQuery();
objcon.Close();
Label2.Text = " successfully uploaded.";
}
else
{
Label2.Text = "Selected File is not a word document file.";
}
我的數據庫結構: -
CREATE TABLE [dbo].[DocumentMaster](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](100) NULL,
[Path] [varchar](100) NULL,
CONSTRAINT [PK_DocumentMaster] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
但我當我試圖上傳word.docx文件遇到錯誤。 word.docx已成功上傳到我的應用程序的DocumentCollection文件夾中。
無法綁定多部分標識符「word.docx」。 列名稱'DocumentCollection'無效。 無法綁定多部分標識符「word.docx」。
請幫幫我。
名稱和路徑是varchar - 您需要將值放在'(單引號)中。我還建議你考慮一下使用參數化查詢的習慣,以免讓自己開放SQL注入攻擊。 – Tim
換句話說,''insert into dbo.DocumentMaster(Name,Path)values(''+ filename +'',''+'DocumentCollection /「+ filename +」');「;' - 注意周圍的單引號要插入的值。 – Tim
非常感謝:-) – Tannya