我可以在一个数据视图网格中选择多个附件。但是有什么方法可以将多个附件上传到数据库。使用此代码,我每次提交只能上传一个附件。请帮助
代码如下:
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);
}
}
答案 0 :(得分:0)
在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();
}
}
通过这种方式,我拉出了存储在数据网格视图中的字符串,并将它们传递给文件流,其余的都可以正常工作