c#变量进入sql命令

时间:2011-08-16 15:15:23

标签: c# sql

string alpha="this is text";
string sql = "INSERT INTO dokimastikospinakas (pliroforia) VALUES ('alpha')";

将c#变量传递给sql命令的正确语法是什么?

7 个答案:

答案 0 :(得分:12)

这是一个非常简单的方法:

var yourTextValue = "this is text";
using (var db = new SqlConnection()) {
    db.Open();

    var command =
        new SqlCommand("INSERT INTO dokimastikospinakas (pliroforia) VALUES (@textValue);", db);
    command.Parameters.AddWithValue("@textValue", yourTextValue);

    command.ExecuteNonQuery();
}

编辑:当然,您实际上需要一些SqlConnection构造函数的连接字符串。并根据大众需求修改变量名称。

答案 1 :(得分:3)

为了避免sql注入漏洞,我建议:

string alpha="this is text";
SqlCommand sqlComm = new SqlCommand();
sqlComm.CommandText = "INSERT INTO dokimastikospinakas (pliroforia) VALUES (@var)";
sqlComm.AddWithValue("@var", alpha);

...等。

答案 2 :(得分:2)

查看使用参数化查询。

SqlCommand command = new SqlCommand();
command.Parameters.Add("@alpha").Value = alpha;
command.CommandText = sql;

您的查询将如下所示:

string sql = "INSERT INTO dokimastikospinakas (pliroforia) VALUES (@alpha)";

答案 3 :(得分:2)

string insert = "INSERT INTO dokimastikospinakas (pliroforia) VALUES (@alpha)";

using (SqlConnection connection = new SqlConnection(...))
{
    connection.Open();
    using (SqlCommand command = new SqlCommand(insert, connection))
    {
        command.Parameters.Add("@alpha", alpha);
        command.ExecuteNonQuery();
    }
}

答案 4 :(得分:1)

您使用的是ADO.NET吗?然后参数化查询就是你想要的:

IDbCommand command = new IDbCommand();
// Set up command connection
command.Text = "INSERT INTO dokimastikospinakas (pliroforia) VALUES (@alpha)";
command.Parameters.Add(new SqlParameter("@alpha", alpha));

上面的代码片段当然取决于您使用的数据库类型(尤其是您添加的SqlParameter类型。

答案 5 :(得分:0)

使用OracleCommand对象的示例: OraCon是OracleConnection。

string sql = "INSERT INTO dokimastikospinakas (pliroforia) VALUES ( :Alpha )";
OracleCommand cmd = new OracleCommand(sql, OraCon);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(":Alpha", alpha);
cmd.ExecuteNonQuery();

答案 6 :(得分:-1)

string alpha;
string sql = "INSERT INTO dokimastikospinakas (pliroforia) VALUES ('" + alpha + "')";

这是最简单的方法,但SQL注入攻击并不安全。相反,您应首先检查alpha的值,以确保在查询中使用它是安全的。