您的位置:首页 > 数据库

C#Winform 在DataGridView(SQL Server)中下载和上传文件方法

2016-02-24 22:41 507 查看
下载方法:
private void DownloadFile(string gl_fileid)
{
string sql = "select * from files where fileid='" + gl_fileid + "'";

DataTable dt = DBUtil.GetData(sql);

if (dt.Rows.Count > 0)
{
DataRow dr = dt.Rows[0];
string extension = dr["filetype"].ToString();
string filename = dr["filename"].ToString();
byte[] bytes = (byte[])dr["filecontent"];

SaveFileDialog dia = new SaveFileDialog();

dia.FileName = filename;
if (dia.ShowDialog()==DialogResult.OK)
{
string filePath = dia.FileName;

FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);

fs.Write(bytes, 0, (int)bytes.Length);
fs.Dispose();
fs.Close();

MessageBox.Show("文件下载成功!");
}
}
}
上传方法:
private void btnSubmit_Click(object sender, EventArgs e)
{
string filePath = this.txtFilePath.Text.ToString();
//Console.WriteLine("filePath"+filePath);

if (filePath.Length == 0)
{
MessageBox.Show("请选择要上传的文件!");
return;
}

string _fileid = Guid.NewGuid().ToString();
string _filename = filePath.Substring(filePath.LastIndexOf("\\") + 1);
string _filetype = _filename.Substring(_filename.LastIndexOf(".") + 1);
string _createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

string sql = "insert into files(fileid,filename,filetype,filecontent,createtime) values(@fileid,@filename,@filetype,@filecontent,@createtime)";

SqlParameter p_fileid = new SqlParameter("fileid", _fileid);
SqlParameter p_filename = new SqlParameter("filename", _filename);
SqlParameter p_filetype = new SqlParameter("filetype", _filetype);
SqlParameter p_createtime = new SqlParameter("createtime", _createtime);

SqlParameter p_filecontent = new SqlParameter("filecontent", SqlDbType.Image);
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);

byte[] bytes = new byte[fs.Length];
fs.Read(bytes, 0, (int)fs.Length);
p_filecontent.Value = bytes;

using (SqlConnection conn = new SqlConnection(sqlconn))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sql;

cmd.Parameters.Add(p_fileid);
cmd.Parameters.Add(p_filename);
cmd.Parameters.Add(p_filecontent);
cmd.Parameters.Add(p_filetype);
cmd.Parameters.Add(p_createtime);

cmd.ExecuteNonQuery();
}
fs.Close();
fs.Dispose();
MessageBox.Show("文件上传成功!");
this.LoadData();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: