![](/img/trans.png)
[英]Incorrect syntax near '=' on INSERT INTO SQL Server statement in C#
[英]Incorrect syntax near '.' SQL INSERT c#
我正在嘗試使用Object類將新記錄添加到SQL數據庫表中。 我創建了一個產品列表,然后使用sql語句遍歷所有產品。
我的代碼是這樣的:
private void backupButton_Click(object sender, RoutedEventArgs e)
{
ReadAllProductsList dbproducts = new ReadAllProductsList();
DB_Product = dbproducts.GetAllProducts();
List<Product> SQLProductList = new List<Product>();
SQLProductList = DB_Product.Where(Product => Product.UserId == currentUser).ToList();
for(int i = 0; i < SQLProductList.Count; i++)
{
InsertSQLProduct(new Product(SQLProductList[i].UserId,
SQLProductList[i].Name));
}
}
public void InsertSQLProduct(Product objProduct)
{
using (var connection = new SqlConnection("Server=localhost\\SQLEXPRESS;Integrated Security=SSPI;database=MyLocalDB"))
{
connection.Open();
using (SqlCommand command = new SqlCommand("INSERT INTO Product (UserId, Name) '" +
"'VALUES (null, '" + objProduct.Name + "');", connection))
{
command.ExecuteNonQuery();
}
}
}
產品類如下所示:
public class Product
{
// List<DietId> Lst = new List<DietId>();
//The Id property is marked as the Primary Key
[SQLite.Net.Attributes.PrimaryKey, SQLite.Net.Attributes.AutoIncrement]
public int Id { get; set; }
public string UserId { get; set; }
public string CreationDate { get; set; }
public string Name { get; set; }
public override string ToString()
{
return Name;
}
public Product()
{
//empty constructor
}
public Product(string userId, string name)
{
UserId = userId;
CreationDate = DateTime.Now.ToString();
Name = name;
}
}
但是,在命令中顯示以下錯誤:
'。'附近的語法錯誤
我在這里做錯了什么?
PS。 SQL中的名稱為VARCHAR類型。
編輯:我已經使用參數並將字符串轉換為varchar,現在我得到了不同的錯誤:
字符串或二進制數據將被截斷。 該語句已終止
好。 排序。
最后一個錯誤告訴我該列僅接受1個字符,因為VARCHAR默認為1。
我用記錄的新最大輸入重新創建了表。
使用參數解決了我原來的問題。
感謝大伙們。
"INSERT INTO Product (UserId, Name) '" +
"'VALUES (null, '" + objProduct.Name + "');",
還有多余的撇號:一個在第一行的結尾,一個在第二行的開頭。
另外,使用參數可以有意或無意地避免SQL注入攻擊。 可能會導致錯誤,具體取決於objProduct.Name
的值。
您有多余的單引號。 您的SQL查詢可以INSERT INTO Product (UserId, Name) ''VALUES (null, 'name')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.