繁体   English   中英

使用ADO.net和SQL中的特殊字符

[英]Working with ADO.net and special characters in SQL

我想在Winforms中编写一个小型应用程序,在其中我可以编写一些单词,然后使用ADO.net将其写入SQL数据库。

当我想用一个占位符写一个字符串时遇到麻烦:

Give me your '%s' right now!

我的数据库中记录的是:

Give me your **"%s"** right now!

我该如何克服通过传输到我的数据库的C#更改字符串?

这是我的代码的一部分:

 public virtual int Split(global::System.Nullable<int> ID, object SplitXMLDoc, string CreatedBy)
 {
            global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[4];
            if ((ID.HasValue == true)) {
                command.Parameters[1].Value = ((int)(ID.Value));
            }
            else {
                command.Parameters[1].Value = global::System.DBNull.Value;
            }
            if ((SplitXMLDoc == null)) {
                command.Parameters[2].Value = global::System.DBNull.Value;
            }
            else {
                command.Parameters[2].Value = ((object)(SplitXMLDoc));
            }
            if ((CreatedBy == null)) {
                command.Parameters[3].Value = global::System.DBNull.Value;
            }
            else {
                command.Parameters[3].Value = ((string)(CreatedBy));
            }
            global::System.Data.ConnectionState previousConnectionState = command.Connection.State;
            if (((command.Connection.State & global::System.Data.ConnectionState.Open) 
                        != global::System.Data.ConnectionState.Open)) {
                command.Connection.Open();
            }
            int returnValue;
            try {
                returnValue = command.ExecuteNonQuery();
            }
            finally {
                if ((previousConnectionState == global::System.Data.ConnectionState.Closed))
 {
                    command.Connection.Close();
                }
            }
            return returnValue;
        }

您使用参数化的sql。

string val = "'%s'".Replace("'","\"");
string sql = "INSERT Into Table1 (value) values (@Value)";
SqlCommand cmd = new SqlCommand(sql, connection);
cmd.Parameters.AddWithValue("@Value",val);
cmd.ExecuteNonQuery();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM