Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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#OLEDB保护查询中的撇号_C#_String_Excel_Insert_Oledb - Fatal编程技术网

C#OLEDB保护查询中的撇号

C#OLEDB保护查询中的撇号,c#,string,excel,insert,oledb,C#,String,Excel,Insert,Oledb,我试图找到一种方法来保护查询字符串中的撇号。我有一个字符串格式的值,其中包含撇号,当我尝试插入时,它会抛出一个错误 例: 这是一个例子。这里val1包含“异端价值” 谢谢你帮我使用,你不用担心这些事情。你不必担心撇号和其他一些问题。使用撇号,你就不必担心这些问题。您不必担心撇号和一系列其他问题。您应该使用参数化查询,而不必担心查询中的单引号 using(OleDbConnection cn = new OleDbConnection(GetConnectionString())) { c

我试图找到一种方法来保护查询字符串中的撇号。我有一个字符串格式的值,其中包含撇号,当我尝试插入时,它会抛出一个错误

例:

这是一个例子。这里val1包含“异端价值”


谢谢你帮我使用,你不用担心这些事情。你不必担心撇号和其他一些问题。

使用撇号,你就不必担心这些问题。您不必担心撇号和一系列其他问题。

您应该使用参数化查询,而不必担心查询中的单引号

using(OleDbConnection cn = new OleDbConnection(GetConnectionString()))
{
    cn.Open();
    string cmdText = "Insert into [" + excelApp.worksheetsList.ElementAt(0).Name + "$] " +   
                     "([col1], [col2]) values (?, ?)";
    OleDbCommand cmd = new OleDbCommand(cmdText, cn)
    cmd.Parameters.AddWithValue("@p1", val1);
    cmd.Parameters.AddWithValue("@p2", val2);
    cmd.ExecuteNonQuery();
}

在本例中,命令文本由单个字符串组成,其中包含参数值的占位符。然后,命令对象被声明为具有该字符串,并在其参数集合中添加两个参数。它们是根据作为值传递的变量类型创建的。因此,如果val1和val2是字符串,并且存在一个单引号(撇号),则会自动为请求的插入/删除/更新或选择操作设置格式

您应该使用参数化查询,而不必担心查询中的单引号

using(OleDbConnection cn = new OleDbConnection(GetConnectionString()))
{
    cn.Open();
    string cmdText = "Insert into [" + excelApp.worksheetsList.ElementAt(0).Name + "$] " +   
                     "([col1], [col2]) values (?, ?)";
    OleDbCommand cmd = new OleDbCommand(cmdText, cn)
    cmd.Parameters.AddWithValue("@p1", val1);
    cmd.Parameters.AddWithValue("@p2", val2);
    cmd.ExecuteNonQuery();
}
在本例中,命令文本由单个字符串组成,其中包含参数值的占位符。然后,命令对象被声明为具有该字符串,并在其参数集合中添加两个参数。它们是根据作为值传递的变量类型创建的。因此,如果val1和val2是字符串,并且存在一个单引号(撇号),则会为请求的插入/删除/更新或选择操作自动格式化