请问这个问题怎么解决才好
而且好像跟上传得文件大小有关,谢谢能一起讨论得朋友也可以通过邮箱或者qq谈谈
[email protected]
qq21069289

解决方案 »

  1.   

    有没有在sqlparameter把长度弄短了?
      

  2.   

    winform or webform?上传的文件有多大?
      

  3.   

    上传的文件一般是扫描上来的图纸,验收报告或者ECN文件
    应该不是很大
    但是我并不知道我在什么地方设置了文件的默认大小啊?
    现在是在sqlserver里面建立的数据库
    应该用什么字段属性呢?
      

  4.   

    字段要用Blob在SQL里面是:image字段。
    其实直接把文件存到库里不是一个好的办法,这会让SQL文件变得很大,同时从SQL里面取文件和写文件的速度都比较慢,比较好的方法是把文件保存到硬盘上面,同是在数据库里面写一个记录,来保持和文件的对应关系。
      

  5.   

    quote:
    --------------------------------
    字段要用Blob在SQL里面是:image字段。
    其实直接把文件存到库里不是一个好的办法,这会让SQL文件变得很大,同时从SQL里面取文件和写文件的速度都比较慢,比较好的方法是把文件保存到硬盘上面,同是在数据库里面写一个记录,来保持和文件的对应关系。
    --------------------------------
    了解,但是暂时只能这么处理,我们这个小组都是新手.很有很多其他的细节问题都没有解决好,现在只求系统能早点运转起来,以后再慢慢更改完善
      

  6.   

    winform参看
    http://blog.csdn.net/knight94/archive/2006/03/24/637800.aspx
      

  7.   

    在sql server中image类型字段足够(可以存4g容量)
      

  8.   

    上面的大哥
    我做的时候就是参考你的这个代码(其实就是直接copy过去用的...-_-),于是就出现这个错误啊
    所以我想你应该是最了解的吧?:)
      

  9.   

    我们现在设置的image属性的字段长度是16,请问是这样么?
    那我们到底哪里除了问题??
    不如直接给你看代码好了....//文件上传数据库//////////////////////////////////////////////////////////////////////////
            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;                //}                        }
      

  10.   

    access数据库是不能设置为image类型字段,我记得以前用的时候,是用ole object类型来替换的。
      

  11.   

    我刚才是了一下,确实发现你的现象
    以前,数据库访问程序与数据库在同一台机器上,因此没有出现你所说的问题。
    但是我今天把它分开放,就会出现你所说的。不过,在直接用Insert语句出的错误,可以用存储过程来代替,我也测试了,是成功的。
      

  12.   

    存路径的问题就是存再服务器上咯
    现在正在试验Knight94(愚翁)同志的方法,不知道所谓的存储过程是虾米