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

时间:2016-02-22 08:45:48

标签: c# database string

我有一个ASP支持应用程序,它从用户获取一个字符串并将其插入表中,创建一个新记录。如果要记录长sql命令或代码片段,则该字段为VARCHAR(4000)。问题是,MSSQL在这些字符串中放置了随机空格。在字符串中,我在调试程序时看到\ r \ n字符,但在随机单词中没有空格,就像我在数据库中看到的那样。我必须在插入中删除这些空格,并使用正确的空格和换行符从数据库中读取字符串。这是我的代码。该字符串是“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;


        }
    }

1 个答案:

答案 0 :(得分:0)

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

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

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