string alpha="this is text";
string sql = "INSERT INTO dokimastikospinakas (pliroforia) VALUES ('alpha')";
将c#变量传递给sql命令的正确语法是什么?
答案 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
的值,以确保在查询中使用它是安全的。