Как загрузить несколько вложений в базу данных в C # Winforms - PullRequest
0 голосов
/ 04 февраля 2019

Я могу выбрать несколько вложений в сетке просмотра данных.Но есть ли способ загрузить несколько вложений в базу данных.С помощью этого кода я могу загрузить только одно вложение для каждой заявки.Пожалуйста, помогите Here is the form image

Вот код:

public byte[] document;

private void linklabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    DialogResult result = openFileDialog1.ShowDialog();           
    if(result == DialogResult.OK)
    {
        int i = dgv.Rows.Count;


        string filename = openFileDialog1.FileName;
        FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
        BinaryReader br = new BinaryReader(fs);
        document = br.ReadBytes((Int32)fs.Length);
        br.Close();
        fs.Close();
        //MessageBox.Show(filename);
        string[] f = filename.Split('\\');
        string fn = f[(f.Length) - 1];
        //MessageBox.Show(fn);
        dgv.Rows.Add();
        dgv.Rows[i].Cells[0].Value = fn;
    }      
}

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        con.Open();
        SqlCommand submit = new SqlCommand("insert into submission (module,Department,priority,description,attachments,assigned_to,comments)" +
            " values(@module,@Department,@priority,@description,@attachments,@assigned_to,@comments)", con);
        submit.Parameters.AddWithValue("@module", cb1_module.Text.Trim());
        submit.Parameters.AddWithValue("@Department", cb2_dep.Text.Trim());
        submit.Parameters.AddWithValue("@priority", cb3_priority.Text.Trim());
        submit.Parameters.AddWithValue("@description", richTextBox1.Text.Trim());
        submit.Parameters.AddWithValue("@attachments", document);
        submit.Parameters.AddWithValue("@assigned_to", cb4_Assign.Text.Trim());
        submit.Parameters.AddWithValue("@comments", richTextBox2.Text.Trim());
        submit.ExecuteNonQuery();
        con.Close(); dgv.Rows.Clear();
        cb1_module.Text = "";
        cb2_dep.Text = "";
        cb3_priority.Text = "";
        richTextBox1.Text = "";
        cb4_Assign.Text = "";
        richTextBox2.Text = "";
        MessageBox.Show("Ticket Raised and Sumitted.. !!");
    }
    catch(Exception excep)
    {
        MessageBox.Show(excep.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

1 Ответ

0 голосов
/ 07 февраля 2019

В событии button_click:

for(int val = 0; val<dgv.Rows.Count; val++)
                {
                    if(dgv.Rows[val].Cells[0].Value.ToString()!= "")
                    {
                        FileStream fs = new FileStream(dgv.Rows[val].Cells[0].Value.ToString(), FileMode.Open, FileAccess.Read);
                        BinaryReader br = new BinaryReader(fs);
                        document = br.ReadBytes((Int32)fs.Length);
                        br.Close();
                        fs.Close();
                    }
                }

Таким образом, я вытащил строки, хранящиеся в представлении таблицы данных, и передал их в файловый поток, а остальное работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...