解决方案 »
- VS08 c#更新access数据库 update更新不了数据~是权限问题吗
- C#数据表列的计算和显示
- repeater第一行加粗第二第三行正常第四行加粗...
- 如何只打开XAML窗口而不打开DESIGN窗口
- 面试题,c#实现字符串反转算法..for循环中为什么不能用string?
- 关于winform中有效位数的函数
- 使用web client上傳檔案如何得到server回傳成功
- 为什么总是选不中treenode节点!!??
- Hi, C#新手,请教一个DataBinding的问题
- WEBbrowser控件打开新窗口的问题
- 那位兄弟有好的c#视频教程下载给提供一个.
- (对你来说是非常简单的问题,好心人,帮帮忙!)怎样才能在程序中使用Excel对象模型!
应该不是很大
但是我并不知道我在什么地方设置了文件的默认大小啊?
现在是在sqlserver里面建立的数据库
应该用什么字段属性呢?
其实直接把文件存到库里不是一个好的办法,这会让SQL文件变得很大,同时从SQL里面取文件和写文件的速度都比较慢,比较好的方法是把文件保存到硬盘上面,同是在数据库里面写一个记录,来保持和文件的对应关系。
--------------------------------
字段要用Blob在SQL里面是:image字段。
其实直接把文件存到库里不是一个好的办法,这会让SQL文件变得很大,同时从SQL里面取文件和写文件的速度都比较慢,比较好的方法是把文件保存到硬盘上面,同是在数据库里面写一个记录,来保持和文件的对应关系。
--------------------------------
了解,但是暂时只能这么处理,我们这个小组都是新手.很有很多其他的细节问题都没有解决好,现在只求系统能早点运转起来,以后再慢慢更改完善
http://blog.csdn.net/knight94/archive/2006/03/24/637800.aspx
我做的时候就是参考你的这个代码(其实就是直接copy过去用的...-_-),于是就出现这个错误啊
所以我想你应该是最了解的吧?:)
那我们到底哪里除了问题??
不如直接给你看代码好了....//文件上传数据库//////////////////////////////////////////////////////////////////////////
private void button1_Click(object sender, EventArgs e)
{
FileInfo fi = new FileInfo(textBox7.Text); if (fi.Exists)
{ byte[] bData = null; int nNewFileID = 0; // Read file data into buffer using (FileStream fs = fi.OpenRead())
{ bData = new byte[fi.Length]; int nReadLength = fs.Read(bData, 0, (int)(fi.Length)); } // Add file info into DB System.Data.OleDb.OleDbConnection Conn = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " +
System.Windows.Forms.Application.StartupPath + "\\db.mdb");
Conn.Open();
string strQuery = "INSERT INTO 报告记录表 " + " ( FileName, Type, FileData ) " + " VALUES " + " ( @FileName, @FullName, @FileData ) "; // + " SELECT @@IDENTITY AS 'Identity'"; OleDbCommand OleDbComm = new OleDbCommand(strQuery, Conn); OleDbComm.Parameters.AddWithValue("@FileName", fi.Name); OleDbComm.Parameters.AddWithValue("@FullName", "验收报告"); OleDbComm.Parameters.AddWithValue("@FileData", bData); //Get new file ID OleDbDataReader OleDbReader = OleDbComm.ExecuteReader(); //if (OleDbReader.Read())
//{ // nNewFileID = int.Parse(OleDbReader.GetValue(0).ToString()); //} OleDbReader.Close(); OleDbComm.Dispose(); //if (nNewFileID > 0)
//{ // // Add new item in list view // ListViewItem itmNew = lsvFileInfo.Items.Add(fi.Name); // itmNew.Tag = nNewFileID; //} }
以前,数据库访问程序与数据库在同一台机器上,因此没有出现你所说的问题。
但是我今天把它分开放,就会出现你所说的。不过,在直接用Insert语句出的错误,可以用存储过程来代替,我也测试了,是成功的。
现在正在试验Knight94(愚翁)同志的方法,不知道所谓的存储过程是虾米