Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#MySQL可重用类安全问题_C#_Mysql_Class - Fatal编程技术网

C#MySQL可重用类安全问题

C#MySQL可重用类安全问题,c#,mysql,class,C#,Mysql,Class,我试图在c#中创建一个可重用的MySQL数据库类,但我担心它的安全性(可能的商业用途)。 我做了很多阅读,人们建议使用参数将数据添加到表中并获取数据,等等。我的问题是通过许多不同的表保持类的可重用性 当前我的插入方法(在数据库类中): 我的Create方法从另一个类(Users)传入SQL查询: 我怎样才能使它更安全 我怎样才能使它更安全 。您当前的查询易受影响 另外,您的方法中似乎有一个打开的连接,最好尽可能晚地打开数据库连接,然后尽早地关闭它。在连接中使用using语句,并在方法中打开它,因

我试图在c#中创建一个可重用的MySQL数据库类,但我担心它的安全性(可能的商业用途)。 我做了很多阅读,人们建议使用参数将数据添加到表中并获取数据,等等。我的问题是通过许多不同的表保持类的可重用性 当前我的插入方法(在数据库类中):

我的
Create
方法从另一个类(
Users
)传入SQL查询:

我怎样才能使它更安全

我怎样才能使它更安全

。您当前的查询易受影响

另外,您的方法中似乎有一个打开的连接,最好尽可能晚地打开数据库连接,然后尽早地关闭它。在连接中使用
using
语句,并在方法中打开它,因为连接和命令实现了
IDisposable
接口,它将确保其处理(关闭连接)

我怎样才能使它更安全

。您当前的查询易受影响

另外,您的方法中似乎有一个打开的连接,最好尽可能晚地打开数据库连接,然后尽早地关闭它。在连接中使用
using
语句,并在方法中打开它,因为连接和命令实现了
IDisposable
接口,它将确保其处理(关闭连接)

我怎样才能使它更安全

。您当前的查询易受影响

另外,您的方法中似乎有一个打开的连接,最好尽可能晚地打开数据库连接,然后尽早地关闭它。在连接中使用
using
语句,并在方法中打开它,因为连接和命令实现了
IDisposable
接口,它将确保其处理(关闭连接)

我怎样才能使它更安全

。您当前的查询易受影响


另外,您的方法中似乎有一个打开的连接,最好尽可能晚地打开数据库连接,然后尽早地关闭它。在连接中使用
using
语句,并在方法中打开它,因为连接和命令实现了
IDisposable
接口,它将确保其处理(关闭连接)

在MySQL数据库中使用存储过程,然后使用所需参数调用这些过程。编写实用程序方法,以便它们获取键值对字典,并将它们解析为odbc命令的Parameters属性


我忘记了确切的代码…

使用MySQL数据库中的存储过程,然后用它们所需的参数调用这些过程。编写实用程序方法,以便它们获取键值对字典,并将它们解析为odbc命令的Parameters属性


我忘记了确切的代码…

使用MySQL数据库中的存储过程,然后用它们所需的参数调用这些过程。编写实用程序方法,以便它们获取键值对字典,并将它们解析为odbc命令的Parameters属性


我忘记了确切的代码…

使用MySQL数据库中的存储过程,然后用它们所需的参数调用这些过程。编写实用程序方法,以便它们获取键值对字典,并将它们解析为odbc命令的Parameters属性

我忘记了精确的代码…

将所有参数(firstName、lastName等)作为字符串[](或者更好的是,作为字典)传递给类似以下内容的方法:

AddParamsToCommand(SqlCommand cmd, Dictionary<string,string> paramList)
{
    foreach (string s in paramList.Keys)
    {
        sqlParameter p = cmd.CreateParameter();
        p.Name = s;
        p.Value = paramList[s];
        cmd.Parameters.Add(p);
    }
}
AddParamsToCommand(SqlCommand cmd,字典参数列表)
{
foreach(paramList.Keys中的字符串s)
{
sqlParameter p=cmd.CreateParameter();
p、 Name=s;
p、 值=参数列表[s];
cmd.Parameters.Add(p);
}
}
举个例子

由于我一直在使用OleDB而忘记了在SqlCommands中的参数上添加名称,所以进行了编辑。

将所有参数(firstName、lastName等)作为字符串[](或更好的字典)传递给类似以下内容的方法:

AddParamsToCommand(SqlCommand cmd, Dictionary<string,string> paramList)
{
    foreach (string s in paramList.Keys)
    {
        sqlParameter p = cmd.CreateParameter();
        p.Name = s;
        p.Value = paramList[s];
        cmd.Parameters.Add(p);
    }
}
AddParamsToCommand(SqlCommand cmd,字典参数列表)
{
foreach(paramList.Keys中的字符串s)
{
sqlParameter p=cmd.CreateParameter();
p、 Name=s;
p、 值=参数列表[s];
cmd.Parameters.Add(p);
}
}
举个例子

由于我一直在使用OleDB而忘记了在SqlCommands中的参数上添加名称,所以进行了编辑。

将所有参数(firstName、lastName等)作为字符串[](或更好的字典)传递给类似以下内容的方法:

AddParamsToCommand(SqlCommand cmd, Dictionary<string,string> paramList)
{
    foreach (string s in paramList.Keys)
    {
        sqlParameter p = cmd.CreateParameter();
        p.Name = s;
        p.Value = paramList[s];
        cmd.Parameters.Add(p);
    }
}
AddParamsToCommand(SqlCommand cmd,字典参数列表)
{
foreach(paramList.Keys中的字符串s)
{
sqlParameter p=cmd.CreateParameter();
p、 Name=s;
p、 值=参数列表[s];
cmd.Parameters.Add(p);
}
}
举个例子

由于我一直在使用OleDB而忘记了在SqlCommands中的参数上添加名称,所以进行了编辑。

将所有参数(firstName、lastName等)作为字符串[](或更好的字典)传递给类似以下内容的方法:

AddParamsToCommand(SqlCommand cmd, Dictionary<string,string> paramList)
{
    foreach (string s in paramList.Keys)
    {
        sqlParameter p = cmd.CreateParameter();
        p.Name = s;
        p.Value = paramList[s];
        cmd.Parameters.Add(p);
    }
}
AddParamsToCommand(SqlCommand cmd,字典参数列表)
{
foreach(paramList.Keys中的字符串s)
{
sqlParameter p=cmd.CreateParameter();
p、 Name=s;
p、 值=参数列表[s];
cmd.Parameters.Add(p);
}
}
举个例子


编辑,因为我一直在使用OleDB,而忘记了在SqlCommands中的参数上添加名称。

Hi,Habib。您能提供一个代码示例吗?我知道我需要使用参数,但我所有的尝试都使我失去了该类的可重用性要求,因为需要将确切的字段硬编码到该类中。@marktallThrough,您仍然可以