Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.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# 我想在消息框中存储撇号,例如john';s手表。它显示erreor near';s_C#_Asp.net_Sql Server - Fatal编程技术网

C# 我想在消息框中存储撇号,例如john';s手表。它显示erreor near';s

C# 我想在消息框中存储撇号,例如john';s手表。它显示erreor near';s,c#,asp.net,sql-server,C#,Asp.net,Sql Server,请帮我储存撇号。我正在创建一个网站(C#、.net、SQL Server),并希望为用户提供一个消息框,但问题是,当我插入任何消息(如John的)时,它会在'附近显示一个错误 请告诉我如何在数据库中存储撇号 我使用了nvarchar,varchar和所有东西,但无法存储包含消息的撇号 一般的解决方案是用双撇号写消息,但这不是一个网站的解决方案。+“s”问题是您需要用另一个撇号来避开撇号 例如,请看:http://sqlfiddle.com/#!3/d2f75/1 CREATE TABLE tbl

请帮我储存撇号。我正在创建一个网站(C#、.net、SQL Server),并希望为用户提供一个消息框,但问题是,当我插入任何消息(如
John的
)时,它会在
'
附近显示一个错误

请告诉我如何在数据库中存储撇号

我使用了
nvarchar
varchar
和所有东西,但无法存储包含消息的撇号


一般的解决方案是用双撇号写消息,但这不是一个网站的解决方案。+“s”

问题是您需要用另一个撇号来避开撇号

例如,请看:http://sqlfiddle.com/#!3/d2f75/1

CREATE TABLE tblTEst( col1 NVARCHAR(50))

INSERT INTO tblTest
  (Col1)
SELECT 'John''s'

问题是你需要用另一个撇号来避开撇号

例如,请看:http://sqlfiddle.com/#!3/d2f75/1

CREATE TABLE tblTEst( col1 NVARCHAR(50))

INSERT INTO tblTest
  (Col1)
SELECT 'John''s'

最好的解决方案是使用一个预先准备好的语句(或C#中的等效语句),其中SQL只包含占位符,而实际值则通过另一种方法传递

在字符文字中,单引号
只需将其加倍即可使用:

insert into foo (bar)
values
('John''s');

最好的解决方案是使用一个预先准备好的语句(或C#中的等效语句),其中SQL只包含占位符,而实际值则通过另一种方法传递

在字符文字中,单引号
只需将其加倍即可使用:

insert into foo (bar)
values
('John''s');
你是开放的。不要连接字符串以生成查询。而是使用
SQL参数
。这也使您的代码更具可读性,并防止出现类似您的错误

下面是一个例子:

int amt;  
using (var con = new SqlConnection(ConnectionString)) {
    var sql = "INSERT INTO dbo.Message(UserID, Message) VALUES(@UserID, @Message);";
    using (var cmd = new SqlCommand(sql, con)) {
        cmd.Parameters.AddWithValue("@UserID", userID); // passed as argument
        cmd.Parameters.AddWithValue("@Message", txtMessage.Text); // f.e. "John's"
        con.Open();
        int inserted = cmd.ExecuteNonQuery();
    }
}
这同样适用于其他sql命令,如
UPDATE
命令。

您已经打开了。不要连接字符串以生成查询。而是使用
SQL参数
。这也使您的代码更具可读性,并防止出现类似您的错误

下面是一个例子:

int amt;  
using (var con = new SqlConnection(ConnectionString)) {
    var sql = "INSERT INTO dbo.Message(UserID, Message) VALUES(@UserID, @Message);";
    using (var cmd = new SqlCommand(sql, con)) {
        cmd.Parameters.AddWithValue("@UserID", userID); // passed as argument
        cmd.Parameters.AddWithValue("@Message", txtMessage.Text); // f.e. "John's"
        con.Open();
        int inserted = cmd.ExecuteNonQuery();
    }
}

这同样适用于其他sql,如
UPDATE
命令。

使用您的代码和错误信息。您所要做的就是在google上搜索“sql server撇号”。您所要做的就是使用
命令
参数
您知道Boby吗?使用你的代码和错误信息。你所要做的就是谷歌“sql server撇号”。你所要做的就是使用
命令
参数
你知道Boby吗?为什么要使用双撇号或字符(39)来存储带有撇号的单词..???让我们以我在这里发布的这篇文章为例..我在这里使用了撇号,类似地,任何用户都可以使用带撇号的单词,那么这类问题的解决方案是什么..为什么要使用双撇号或字符(39)为了存储带撇号的单词......让我们以我在这里发布的这篇文章为例..我在这里使用了撇号,类似地,任何用户都可以使用带撇号的单词,那么这类问题的解决方案是什么。。??