簡體   English   中英

將查詢插入Access C#

[英]Insert query into Access C#

我正在使用Access數據庫,有一個用戶表。

我有一個插入查詢:

DataBase.Execute("Insert into Users(UserID,FirstName,SecondName,UserName,Password,Permission) Values(" +
    obj.PersonID +
    ",'" + obj.FirstName +
    "','" + obj.LastName +
    "','" + username +
    "','" + psw +
    "'," + permission + ")");

我檢查了所有參數的值,使其與表的值相同...但是它說我的INSERT查詢中存在語法錯誤。

參數,參數,參數。 代碼的第一個好處是,您無需擔心單引號。 其次,您避免了可怕的SQL注入漏洞。 第三,您的代碼將更容易閱讀。 考慮一下:

string insertQuery = "INSERT INTO table (field1, field2, field3) VALUES (@par1, @par2, @par3)";
Database.Execute(insertQuery, var1, var2, var3);

其中var1var2var3是包含您需要插入的值的變量。

有一個更簡單的(但更糟糕的是,因為它仍然容易受到SQL注入的影響)解決方案,這將使您的代碼比發布的示例更具可讀性:string.format。 代替這個:

DataBase.Execute("Insert into Users(UserID,FirstName,SecondName,UserName,Password,Permission) Values(" +
obj.PersonID +
",'" + obj.FirstName +
"','" + obj.LastName +
"','" + username +
"','" + psw +
"'," + permission + ")");

您可以執行以下操作,更清晰,更難忘記一些簡單的引號:

string query = string.Format("Insert into Users (UserID,FirstName,SecondName,UserName,Password,Permission) Values({0}, '{1}', '{2}', '{3}', '{4}', {5})", obj.PersonID, obj.FirstName, obj.LastName, username, psw, permission);
Database.Execute(query);

將此視為使用插入參數的簡短示例: http : //msdn.microsoft.com/zh-cn/library/webmatrix.data.database.execute(v=vs.111).aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM