Создание таблицы в RichTextBox C # из данных в моей базе данных SQL - PullRequest
0 голосов
/ 28 июня 2019

Я провел некоторое исследование о richtextbox и о том, как добавить к ним таблицу.Однако я не понимаю, как вставить данные из моей базы данных SQL в эту таблицу, я смог добавить необходимые данные в richtextbox для предварительного просмотра перед отправкой текста по электронной почте.Я попробовал вышеупомянутое с некоторым простым кодом, создающим вывод с добавлением текста, но этого недостаточно, так как большое количество данных будет отправлено по электронной почте и затруднит чтение.

Пожалуйста, смотрите мой код ниже (Имейте в виду, я очень новичок в мире программирования)

SqlConnection connection = new SqlConnection();
        connection.ConnectionString = "Data Source=192.168.1.201;Initial Catalog=JOSKEN;User ID=Admin;Password=Josken123!";
        connection.Open();

        //Reads Information from Database in terms of Job number

        //Variables
        int jobNumber;
        int itemNumber;
        string Qty;
        string itemMake;
        string itemModel;
        string itemSerial;
        string itemType;
        string specs;
        string fault;
        string Assessor;
        string replacementQuote;
        string replacementPrice;
        string totalPrice;
        itemMake = "";
        itemNumber = 0;
        itemType = "";
        itemModel = "";
        itemSerial = "";
        specs = "";
        jobNumber = 0;
        fault = "";
        replacementPrice = "";
        replacementQuote = "";
        totalPrice = "";

        SqlCommand Cmd = new SqlCommand();
        Cmd.Connection = connection;
        string Query = "Select * from Insurance_Items where Job_Number = '" + Convert.ToInt32(metroTxtJobNumberInternalReport.Text) + "'";
        Cmd.CommandText = Query;
        SqlDataReader reader = Cmd.ExecuteReader();
        while (reader.Read())
        {
            for (int n = 1; n <= Convert.ToInt32(metroLblItemNoInternalReport.Text); n++) 
            {
                jobNumber = Convert.ToInt32(reader["Job_Number"]);
                itemNumber = Convert.ToInt32(reader["Item_Number"]);
                Qty = Convert.ToString(reader["Item_Qty"]);
                itemMake = Convert.ToString(reader["Item_Make"]);
                itemModel = Convert.ToString(reader["Item_Model"]);
                itemSerial = Convert.ToString(reader["Item_SerialNumber"]);
                itemType = Convert.ToString(reader["Item_Type"]);
                specs = Convert.ToString(reader["Item_Specs"]);
                fault = Convert.ToString(reader["Item_Fault"]);
                Assessor = Convert.ToString(reader["Assessor_Name"]);
                replacementQuote = Convert.ToString(reader["Replacement_Quote"]);
                replacementPrice = Convert.ToString(reader["Replacement_Price"]);
                totalPrice = Convert.ToString(reader["Total_Price"]);



            }



            string itemText = Environment.NewLine + "Item Make: " + itemMake + " " + itemType + Environment.NewLine + "Model: "
                    + itemModel + Environment.NewLine + "S/N: " + itemSerial
                    + Environment.NewLine + "Specs: " + Environment.NewLine + specs + Environment.NewLine + Environment.NewLine + 
                    "Assessment: " + fault + Environment.NewLine + Environment.NewLine 
                    + "Replacement Quote: " + Environment.NewLine + replacementQuote + Environment.NewLine + "Replacement Price: R" + replacementPrice + Environment.NewLine + "Total Price: R" + totalPrice 
                    + Environment.NewLine + Environment.NewLine;

            RedInternalReport.AppendText(itemText);
            string emailsubject = metrolblClientNameInternalReport.Text + " " + metrolblClaimNumberInternalReport.Text + " " + " | " + " Job Number: " + jobNumber + " | ";
            metroTxtSubjectInternalReport.Text = emailsubject;
            RedInternalReport.AppendText("=======================================================================================================");

        }

        connection.Close();

Смотрите скриншот ниже:

Вывод вышеуказанного кода при отправке по электронной почте

Я хотел бы вывести данные в 4 столбца, и количество строк должно увеличиться с точки зрения количества элементов, которые я добавляю, как определено в metroLblItemNoInternalReport.Text

Я хотел бы добавить itemMake, itemMode и itemSerial для первого столбца.Я хотел бы добавить спецификации ко второму столбцу. Я хотел бы добавить ошибку к третьему столбцу. Наконец, я хотел бы добавить replacePrice, replaceQuote и totalPrice к четвертому и последнему столбцу.

Любая помощь будет весьмацениться

1 Ответ

0 голосов
/ 28 июня 2019

Было бы лучше отобразить ваш конечный результат на изображении.Я надеюсь, что это то, что вы хотите.

int jobNumber = 0;
int itemNumber = 0;
string Qty = "Qty";
string itemMake = "itemMake";
string itemModel = "itemModel";
string itemSerial = "itemSerial";
string itemType = "itemType";
string specs = "specs";
string fault = "fault";
string Assessor = "Assessor";
string replacementQuote = "replacementQuote";
string replacementPrice = "replacementPrice";
string totalPrice = "totalPrice";

int maxLen = itemMake.Length;
if (itemModel.Length > maxLen) maxLen = itemModel.Length;
if (itemSerial.Length > maxLen) maxLen = itemSerial.Length;
if (itemType.Length > maxLen) maxLen = itemType.Length;
if (specs.Length > maxLen) maxLen = specs.Length;
if (fault.Length > maxLen) maxLen = fault.Length;
if (replacementQuote.Length > maxLen) maxLen = replacementQuote.Length;
if (replacementPrice.Length > maxLen) maxLen = replacementPrice.Length;
if (totalPrice.Length > maxLen) maxLen = totalPrice.Length;

string formatter = "";
for (int i = 0; i < 4; i++)
{
    formatter += $"{"{"}{i},{-maxLen}{"}"}";
}

// Use for loop to make rows
string formattedText = string.Format(formatter, itemMake, specs, fault, replacementPrice) +
    Environment.NewLine +
    string.Format(formatter, itemModel, "", "", replacementQuote) +
    Environment.NewLine +
    string.Format(formatter, itemSerial, "", "", totalPrice);

enter image description here

...