我有一个带有两个按钮的列表框。将文件添加到列表框的第一个按钮。第二个按钮,用于从列表框中删除它。
我想用第三个按钮将文件从列表框插入SQL Server数据库。
例如,如果我在列表框中添加了两个文件,我想在点击插入按钮后将它们保存在我的数据库中。
抱歉我的英语不好;我希望有人可以帮助我
// this button for adding files to listbox
private void add_Click(object sender, EventArgs e)
{
OpenFileDialog parcourir = new OpenFileDialog();
parcourir.Filter = "XML Files (.xml)|*.xml|All Files (*.*)|*.*";
if (parcourir.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
listBox1.Items.Add(parcourir.SafeFileName);
}
}
//this button for deleting selected file in listbox
private void delete_Click(object sender, EventArgs e)
{
if (listBox1.Items.Count > 0)
{
if (listBox1.SelectedIndex < 0)
{
MessageBox.Show("select a file first", "error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else
{
listBox1.Items.RemoveAt(listBox1.SelectedIndex);
}
}
else
{
MessageBox.Show("listbox empty", "error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
private void insert_Click(object sender, EventArgs e)
{
//save files from listbox to sql database
}
答案 0 :(得分:2)
没有经过测试,但是这应该可以帮到你: 这假设列表框具有每个文件的完整路径+名称。
using(SqlConnection connection = new SqlConnection(yourconnectionstring))
{
connection.Open();
foreach (string item in yourListBox.Items)
{
string fileName = System.IO.Path.GetFileName(item);
string filePath = System.IO.Path.GetDirectoryName(item);
using (SqlCommand cmd = new SqlCommand("INSERT INTO FILE (name_file, path_file) VALUES (@fileName, @filePath)", connection))
{
cmd.Parameters.AddWithValue("@fileName", fileName);
cmd.Parameters.AddWithValue("@filePath", filePath);
cmd.ExecuteNonQuery();
}
}
}