Как получить сообщение из SQL-запроса в расширенное текстовое поле в C#

В SQL Server Management studio при выполнении запроса SELECT вы также получаете сообщение с результатами. Это сообщение, которое я хотел бы использовать в Rich Textbox. Это возможно? Послание, о котором я говорю, таково:

введите описание изображения здесь

Пока у меня есть этот код, который также заполняет комбинированные списки с результатами, но я хотел бы, чтобы мое расширенное текстовое поле показывало сообщение также:

using (SqlConnection Con = new SqlConnection(Connectionstring.selectedBrugerString))
{
    Con.Open();
    SqlCommand cmd = new SqlCommand("SELECT USERNAME FROM PERSONAL", Con);
    SqlDataReader reader = cmd.ExecuteReader();
    while (reader.Read())
    {
        fromComboBox.Items.Add(reader[0]);
        toComboBox.Items.Add(reader[0]);
    }
    Con.Close();
}

GUI выглядит так:

Мой графический интерфейс

4 ответа

Вам не нужно смотреть на сообщение. Вы можете просто посмотреть на RowsEffect для читателя, например так:

using (SqlConnection Con = new SqlConnection(Connectionstring.selectedBrugerString))
{
    Con.Open();
    SqlCommand cmd = new SqlCommand("SELECT USERNAME FROM PERSONAL", Con);
    SqlDataReader reader = cmd.ExecuteReader();
    while (reader.Read())
    {
        fromComboBox.Items.Add(reader[0]);
        toComboBox.Items.Add(reader[0]);
    }
    var recordsEffected = reader.RecordsAffected;
}

Используйте событие SqlConnection.InfoMessage,

Это событие происходит, когда SQL Server возвращает предупреждение или информационное сообщение.

ExecuteNonQuery () - возвращает количество затронутых строк.

SqlCommand comm;
// random code
int numberOfRecords = comm.ExecuteNonQuery();

РЕДАКТИРОВАТЬ:

За select запросы вы можете использовать ExecuteScalar() -

String sqlQuery = "SELECT count(USERNAME) FROM PERSONAL";
SqlCommand cmd = new SqlCommand(sqlQuery, conn);
try
{
    conn.Open();
    //Since return type is System.Object, a typecast is must
    count = (Int32)cmd.ExecuteScalar();
}

Я получил все это на работу. Спасибо за большую помощь. Очень признателен! Я покажу все это, если кто-либо может использовать любой из него:D

Закончилось этим:

using (SqlConnection Con = new SqlConnection(Connectionstring.selectedBrugerString))
        {
            Con.Open();
            SqlCommand cmd = new SqlCommand("SELECT USERNAME FROM PERSONAL", Con);
            using (SqlDataReader reader = cmd.ExecuteReader())
                {
                while (reader.Read())
                {
                    fromComboBox.Items.Add(reader[0]);
                    toComboBox.Items.Add(reader[0]);

                }
            }
            var countUsers = fromComboBox.Items.Count;
            movePostMessage.Text = countUsers + " brugere er fundet";
        }

    }

И по нажатию кнопки я сделал это:

using (SqlConnection Con = new SqlConnection(Connectionstring.selectedBrugerString))
        {
            Con.Open();
            string SQL1 = "UPDATE DEBSALDO SET PERSONALID = (SELECT PERSONALID FROM PERSONAL WHERE USERNAME = '" + toComboBox.Text + "') WHERE PERSONALID IN (SELECT PERSONALID FROM PERSONAL WHERE USERNAME = '" + fromComboBox.Text + "')";
            string SQL2 = "UPDATE SERVHEAD SET PERSONALID = (SELECT PERSONALID FROM PERSONAL WHERE USERNAME = '" + toComboBox.Text + "') WHERE PERSONALID IN (SELECT PERSONALID FROM PERSONAL WHERE USERNAME = '" + fromComboBox.Text + "')";
            string SQL3 = "UPDATE SERVICEB SET PERSONALID = (SELECT PERSONALID FROM PERSONAL WHERE USERNAME = '" + toComboBox.Text + "') WHERE PERSONALID IN (SELECT PERSONALID FROM PERSONAL WHERE USERNAME = '" + fromComboBox.Text + "')";
            string SQL4 = "UPDATE PERSONAL SET ACOUNTCYID = NULL WHERE PERSONALID IN (SELECT PERSONALID FROM PERSONAL WHERE USERNAME = '" + fromComboBox.Text + "')";
            SqlCommand cmd1 = new SqlCommand(SQL1, Con);
            SqlCommand cmd2 = new SqlCommand(SQL2, Con);
            SqlCommand cmd3 = new SqlCommand(SQL3, Con);
            SqlCommand cmd4 = new SqlCommand(SQL4, Con);
            Int32 rowsAffectedOnUpdate1 = cmd1.ExecuteNonQuery();
            Int32 rowsAffectedOnUpdate2 = cmd2.ExecuteNonQuery();
            Int32 rowsAffectedOnUpdate3 = cmd3.ExecuteNonQuery();
            Int32 rowsAffectedOnUpdate4 = cmd4.ExecuteNonQuery();
            movePostMessage.Text = rowsAffectedOnUpdate1 + " regninger flyttet fra tidligere brugers debitor saldo \r\n" + rowsAffectedOnUpdate2 + " regninger flyttet med tidligere bruger som ejer \r\n" + rowsAffectedOnUpdate3 + " ydelser flyttet med tidligere bruger som ejer \r\n" + rowsAffectedOnUpdate4 + " kontoplan nulstillet";
        }

И графический интерфейс к нему:

Другие вопросы по тегам