System.Data.OleDb.OleDbException:INSERT INTO语句中的语法错误 - c#

    public void RegisterUser(string passw,string uname ,string fname ,string lname, string email)
{
    string strSql = @"INSERT INTO User (passw,uname,fname,lname,email) values ('" + passw + "','" + uname + "','" + fname + "','" + lname + "','" + email + "')";                                                           
    cn.Open();
    OleDbCommand cmd = new OleDbCommand(strSql,cn);
    int yy= cmd.ExecuteNonQuery();
    cn.Close();
    cn.Dispose();

}

无论我做什么我都会遇到相同的错误
有人看到这里有问题吗?
或者有另一种创造性的方法来解决这个问题
谢谢

c#大神给出的解决方案

您的代码可以根据用户输入动态更改。这就是导致错误的原因。

让我解释一下,如果您的任何输入字段都包含撇号['],则sql会中断,并且现在具有未关闭的引号。

不仅如此,它还会使您的代码受到SQL注入攻击。

所以我建议您使用参数来传递值,因为对参数进行了区别对待,它们既安全又可以防止SQL注入。

    public void RegisterUser(string passw,string uname ,string fname ,string lname, string email)
{
    string strSql = @"INSERT INTO User (passw,uname,fname,lname,email) values     (@passw,@uname,@fname,@lname,@email)";                                                           
    cn.Open();
    OleDbCommand cmd = new OleDbCommand(strSql,cn);
    cmd.Parameters.AddWithValue("@passw",passw);
    cmd.Parameters.AddWithValue("@uname",uname);
    cmd.Parameters.AddWithValue("@fname",fname);
    cmd.Parameters.AddWithValue("@lname",lname);
    cmd.Parameters.AddWithValue("@email",email);
    int yy= cmd.ExecuteNonQuery();
    cn.Close();
    cn.Dispose();
}

System.out.printf不打印整数参数 - java

我是Java编程的新手,无法从另一个类返回方法。这两个类都可以编译并成功运行。我可以从一个类中调用一个简单的int,但是当我想计算用户输入的两个输入整数时,我只会得到一个空格。这是我的计算课class calculations { public final int AGE = 53; public int numbers(int num1, int num2…

LeetCode题解380.insert-delete-getrandom-o1

题目地址(380. 常数时间插入、删除和获取随机元素) https://leetcode-cn.com/problems/insert-delete-getrandom-o1/description/ 题目描述 设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构。 insert(val):当元素 val 不存在时,向集合中插入该项。 rem…

LeetCode题解? 170. Two Sum III - Data Structure Design

Design and implement a TwoSum class. It should support the following operations: add and find.add - Add the number to an internal data structure.find - Find if there exists any pai…

LeetCode题解211.add-and-search-word-data-structure-design

题目地址(211. 添加与搜索单词 - 数据结构设计) https://leetcode-cn.com/problems/add-and-search-word-data-structure-design/description/ 题目描述 设计一个支持以下两种操作的数据结构: void addWord(word) bool search(word) sea…

.NET核心3:JsonPropertyName的序列化顺序(System.Text.Json.Serialization) - c#

迁移到.NET Core 3时,我已经从Newtonsoft.Json序列化切换到System.Text.Json.Serialization。在所有功能中,我想继续使用JsonPropertyName属性。Newtonsoft版本允许ordering of serialized attributes:[JsonProperty(Order = 1)] pu…