插入文件路徑字符串轉換成SQL數據庫在SQL:通過C#代碼
INSERT INTO [dbo].[tblFiles]
([FullFilePath]
,[LastModified])
VALUES
('P:\test\test.csv',
null)
這將存儲在數據庫中的完整路徑:) 不過,我需要做到這一點的代碼。
SqlConnection connection = new SqlConnection(DatabaseHelper.ConnectionString);
connection.Open();
SqlCommand command = new SqlCommand("stpInsertFile", connection);
command.CommandType = System.Data.CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@filepath", System.Data.SqlDbType.VarChar));
command.Parameters["@filepath"].Value = article.FullFilePath;
command.Parameters.Add(new SqlParameter("@LastModified", System.Data.SqlDbType.DateTime));
command.Parameters["@LastModified"].Value = article.LastModified;
int newArticleID = Convert.ToInt32((decimal)command.ExecuteNonQuery());
command.Dispose();
connection.Close();
connection.Dispose();
return newArticleID;
這樣我得到的就是'P'的完整路徑列。 所以我嘗試使用LINQ並得到了相同的結果。
public int InsertArticleUsingLINQ(tblFile article) {
DataClassesDataContext context = new DataClassesDataContext();
tblFile newFileEntry = new tblFile();
newFileEntry.FullFilePath = article.FullFilePath;
newFileEntry.LastModified = article.LastModified;
context.tblFiles.InsertOnSubmit(newFileEntry);
context.SubmitChanges();
return newFileEntry.ID;
}
在將字符串傳遞給數據庫插入函數之前,我沒有對該字符串做任何處理。我讀到,你需要避開反斜槓,但它似乎是逃避報價。還請閱讀你在sql之前需要@符號,但是如何將它添加到參數中?
'stpInsertFile'是做什麼的? – 2014-10-02 11:11:10
article.FullFilePath持有什麼值?在插入它之前可能會出錯。 – 2014-10-02 11:17:16
當您設置'command.Parameters [「@ filepath」]時,您可能需要添加引號。值' – 2014-10-02 11:19:24