Richtextbox追加查询C#

本文关键字:查询 追加 Richtextbox | 更新日期: 2023-09-27 18:01:09

我在使用C#表单更新数据库时遇到问题。我使用了两个richTextBox,其中一个将是只读的,并且将包含从我的数据库(richTextBox(中检索到的数据。另一个richtextbox将用于允许数据输入数据库(richTextBox1(。加载表单时,数据库中的数据将加载到只读文本框中。然后可以将数据写入richTextBox1,一旦我按下"编辑"按钮,就会将其附加到数据库中。

我遇到的问题是,输入的新数据覆盖了旧数据,而不是将数据附加到数据库中。从我读到的资料来看,似乎没有办法附加数据,只能替换数据。我的代码如下:

从数据库检索数据的代码:

private void QuizForm_Load(object sender, EventArgs e)
        {
        //declare connection string using windows security
        string cnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:''Users''Hannah''Desktop''Quiz.accdb";
        //declare Connection, command and other related objects
        OleDbConnection conGet = new OleDbConnection(cnString);
        OleDbCommand cmdGet = new OleDbCommand();
        try
        {
            //open connection
            conGet.Open();
            cmdGet.CommandType = CommandType.Text;
            cmdGet.Connection = conGet;
            cmdGet.CommandText = "SELECT DataToRead FROM QuizQuestions";
            richTextBox.Text = cmdGet.ExecuteScalar().ToString();
            conGet.Close();
        }

将数据保存到数据库的代码:

private void btnEdit_Click(object sender, EventArgs e)
        {
            //richTextBox.Enabled = true;
            {
            //declare connection string using windows security
            string cnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:''Users''Hannah''Desktop''Quiz.accdb";
            //declare Connection, command and other related objects
            OleDbConnection conSave = new OleDbConnection(cnString);
            OleDbCommand cmdSave = new OleDbCommand();
            try
            {
                //open connection
                conSave.Open();
                cmdSave.CommandType = CommandType.Text;
                cmdSave.Connection = conSave;
                cmdSave.CommandText = "UPDATE QuizQuestions SET DataToRead = @prichTextBox";
                 OleDbParameter parrichTextBox1 = new
                   OleDbParameter("@prichTextBox", OleDbType.VarChar);
                parrichTextBox1.Value = (richTextBox.Text + richTextBox1.Text);
                cmdSave.ExecuteNonQuery();
                //cmdSave.Parameters.Add("@parrichTextBox1", OleDbType.VarChar, combinedTextBox);
                conSave.Close();
                //END OF MY CODE

            }

总之,这就是我希望发生的事情:1.表单打开,richTextBox自动填充数据库内容2.在richTextBox1中输入数据/文本时,按下"编辑"按钮,导致数据被附加到数据库中。3.重新打开表单时,添加的数据在只读文本框richTextBox 中可见

Richtextbox追加查询C#

您的SQL语句确实覆盖了数据。如果您想将richTextBox中存在的数据附加到从DB中读取的记录中,那么您的UPDATE SQL语句应该如下所示:

UPDATE QuizQuestions SET DataToRead = DataToRead + @prichTextBox

如果将更新语句改为会发生什么

cmdSave.CommandText = "UPDATE QuizQuestions SET DataToRead = DataToRead + ' '" + @prichTextBox";