首页 文章

MSSQL在字到表中插入带有随机空格的字符串

提问于
浏览
0

我有一个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

    我找到了解决方案 .

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

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

相关问题