protected void Button2_Click(object sender, EventArgs e)
{
if (FileUpload1.FileName == string.Empty)
{
TextBox4.Text = "请选择文件";
}
else
{
TextBox4.Text = string.Empty;
MemoryStream pdfStream = new MemoryStream();
byte[] pdfByte = pdfStream.GetBuffer();
MySqlConnection conn = new MySqlConnection();
conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DB_CON"].ConnectionString;
conn.Open(); string insertStr = "insert into pdfcontents (pdfcontents) values(?pdfByte)";
MySqlCommand comm = new MySqlCommand();
comm.Connection = conn;
comm.CommandText = insertStr;
comm.Parameters.Add(new MySqlParameter("?pdfByte", MySqlDbType.MediumBlob)).Value = pdfByte;
try
{
comm.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
comm.Dispose();
conn.Close();
conn.Dispose();
}
}
我是有3个控件,一个FileUpload1选择pdf文件,一个button,一个textbox。点击button,FileUpload1为空的时候,textbox4.tex提示请选择,不为空的时候如果存入了数据库则显示textbox4.text“存储成功”。
代码写得好像不对,希望大神帮忙修改下
解决方案 »
- ADO数据读取的写法返回DataTable如何改成泛型?
- 如何用字符串"2012-4-3 11:35:06"生成DateTime类型对象
- 一个郁闷的问题,求教
- Iframe页面报黄页,请各位大哥看看
- 给exe文件添加参数,在窗体构造函数中设置控件属性导致程序不运行的问题导致程序
- [求助]执行存储过程,返回结果集和output参数
- 用遥控的方式(类似电视)实现电脑关机控制
- winform动态列添加合计行
- C#中用两个方法去读取同一个TXT文件同一行内容,其中一个能读取,另一个不能
- 超级菜鸟送分,一小时后给分。
- C#中读取和更改APP.config配置文件?
- Excel导入Sql Server2005的问题。
以前保存图片都是这么做的。
{
byte[] fileArr = FileUpload1.FileBytes; using (SqlConnection con = new SqlConnection(@"Data Source=111GOTOHVM\SQLEXPRESS;Initial Catalog=testDB;Integrated Security=True"))
{
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = "insert into FileInfo values(@id,@description,@content)";
cmd.CommandType = System.Data.CommandType.Text; SqlParameter idSp = new SqlParameter("@id", "11");
idSp.DbType = System.Data.DbType.String; SqlParameter deSp = new SqlParameter("@description", "nothing to say");
deSp.DbType = System.Data.DbType.String; SqlParameter conSp = new SqlParameter("@content", fileArr);
conSp.DbType = System.Data.DbType.Binary; cmd.Parameters.Add(idSp);
cmd.Parameters.Add(deSp);
cmd.Parameters.Add(conSp); cmd.ExecuteNonQuery(); } } protected void ButtonReadFile_Click(object sender, EventArgs e)
{ DataTable dtResult = new DataTable();
using (SqlConnection con = new SqlConnection(@"Data Source=111GOTOHVM\SQLEXPRESS;Initial Catalog=testDB;Integrated Security=True"))
{
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = "select * from FileInfo";
cmd.CommandType = System.Data.CommandType.Text; SqlDataAdapter sdp = new SqlDataAdapter(cmd); sdp.Fill(dtResult); cmd.ExecuteNonQuery(); } if (dtResult != null && dtResult.Rows.Count > 0)
{
System.IO.File.WriteAllBytes(@"c:\test.txt", (byte[])dtResult.Rows[0][2]); }
}
没有mysql的数据库,sql 的写了个很简单的例子,道理上一样的,就是讲文件的二进制保存到DB中。
PS:另外还有一种方式就是数据库只记录文件的路径,把文件保存在服务器的文件目录下,然后根据DB的路径来定位文件。
{
if (FileUpload1.FileName == string.Empty)
{
TextBox4.Text = "请选择文件";
}
else
{
byte[] pdfByte = FileUpload1.FileBytes;
MySqlConnection conn = new MySqlConnection();
conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DB_CON"].ConnectionString;
conn.Open();
MySqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "insert into pdfcontents (pdfcontents) values(@contents)";
cmd.CommandType = System.Data.CommandType.Text;
MySqlParameter contents = new MySqlParameter("@contents", pdfByte);
contents.DbType = System.Data.DbType.Binary;
cmd.Parameters.Add(contents);
cmd.ExecuteNonQuery();
}
}这样还不行啊,我设了断点,都没用,跳不过去三个控件,一个button2,一个textbox4,一个fileupload1
fileuplocad1选择pdf文件
点击button2存入pdf文件到mysql数据库
如果为空则 textbox4.text=“请选择文件”
如果不为空则 textbox4.text = “存储成功”
{
byte[] pdfByte = FileUpload1.FileBytes;
MySqlConnection conn = new MySqlConnection();
conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DB_CON"].ConnectionString;
conn.Open();
MySqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "insert into pdfcontents (pdfcontents) values(@contents)";
cmd.CommandType = System.Data.CommandType.Text;
MySqlParameter contents = new MySqlParameter("@contents", pdfByte);
contents.DbType = System.Data.DbType.Binary;
cmd.Parameters.Add(contents);
cmd.ExecuteNonQuery();
TextBox4.Text = "存储成功";
}三个控件,一个button2,一个textbox4,一个fileupload1
fileuplocad1选择pdf文件
点击button2存入pdf文件到mysql数据库
如果为空则 textbox4.text=“请选择文件”
如果不为空则 textbox4.text = “存储成功” 现在这个情况,如果fileuplocad1中选择了文件,点击没反应,如果不选择文件,则触发button2_click()
<httpRuntime executionTimeout="300" maxRequestLength="999999" useFullyQualifiedRedirectUrl="false"/>mysql数据库也要配置数据包大小