MSSQL 将单词内带有随机空格的字符串插入到表中

本文关键字:插入 字符串 空格 单词内 随机 MSSQL | 更新日期: 2023-09-27 18:35:48

我有一个ASP支持应用程序,它从用户那里获取一个字符串并将其插入到表中,从而创建一条新记录。该字段为 VARCHAR(4000),以防有很长的 sql 命令或代码片段要记录。问题是,MSSQL 在这些字符串中放置了随机空格。在字符串中,我在调试程序时看到''r'字符,但随机单词中没有空格,就像我在数据库中看到的那样。我必须消除插入中的这些空格,并且还必须使用正确的空格和换行符从数据库中读取字符串。这是我的代码。字符串是"detay"字段。代码似乎很好,问题是 MSSQL 还是我的 sql 语句?变量是半土耳其语,如果您需要翻译,请询问,以便我进行编辑。

  protected void btnkaydet_Click(object sender, EventArgs e)
    {
        if (txtbaslik.Text == "")
        {
            baslikErr.Text = "ERROR";
            baslikErr.Visible = true;
        }
        else
        {
            baslikErr.Visible = false;
        }
        if (txtdetay.Text == "")
        {
            detayErr.Text = "ERROR";
            detayErr.Visible = true;
        }
        else
        {
            detayErr.Visible = false;
        }
        if (txtdetay.Text != "" && txtbaslik.Text != "")
        {
            OdbcConnection baglanti = new OdbcConnection();
            StringBuilder sorgu = new StringBuilder();
            OdbcCommand komut = new OdbcCommand();
            string veritabani = null;
            veritabani = ;//cant give the db string for reasons :)
            baglanti.ConnectionString = veritabani;
            baglanti.Open();
            veritabani = null;
            komut = baglanti.CreateCommand();
            if (string.IsNullOrEmpty(hdnFilename.Value))
            {
                sorgu.Append(" INSERT INTO DESTEK (baslik, detay, tarih) VALUES (?,?,?) ");
                komut.CommandText = sorgu.ToString();
                komut.Parameters.Add("@baslik", OdbcType.VarChar).Value = this.txtbaslik.Text;
                komut.Parameters.Add("@detay", OdbcType.VarChar).Value = this.txtdetay.Text;
                komut.Parameters.Add("@tarih", OdbcType.DateTime).Value = DateTime.Now.ToString();
            }
            else
            {
                sorgu.Append(" INSERT INTO DESTEK (baslik, detay, tarih, dosya) VALUES (?,?,?,?) ");
                komut.CommandText = sorgu.ToString();
                komut.Parameters.Add("@baslik", OdbcType.VarChar).Value = this.txtbaslik.Text;
                komut.Parameters.Add("@detay", OdbcType.VarChar).Value = this.txtdetay.Text;
                komut.Parameters.Add("@tarih", OdbcType.DateTime).Value = DateTime.Now.ToString();
                komut.Parameters.Add("@dosya", OdbcType.VarChar).Value = hdnFilename.Value;
            }
            komut.ExecuteNonQuery();
            komut = null;
            baglanti.Close();
            baglanti = null;

        }
    }

MSSQL 将单词内带有随机空格的字符串插入到表中

我已经找到了答案的解决方案。

        string detay = this.txtdetay.Text;
        detay = detay.Replace(@"'r'n", "");
        detay = detay.Replace((char)13, '£');
        detay = detay.Replace((char)10, '£');
        detay = detay.Replace("£", "");

显然我不得不用空格替换转义字符。把它留在这里,以防其他人有同样的问题。