c# 如何实现将Excel文件以二进制形式存储到sql2000

时间:2022-12-05 03:58:29
1、c# 如何实现将Excel文件以二进制形式存储到sql2000
2。动态修改存入的Excel文件

急,在线等

20 个解决方案

#1


up

#2


直接保存成流文件就行拉。

#3


up

#4



public static byte[] GetBinary(string fileName)
        {
            FileInfo fi = new FileInfo(fileName);
            FileStream fs = fi.OpenRead();
            byte[] bytes = new byte[fs.Length];
            fs.Read(bytes, 0, Convert.ToInt32(fs.Length));
            fs.Close();
            return bytes;
        }

将方法的返回值存入数据库

#5


那么第二个问题怎么解决

#6



private void button_添加数据文件_Click(object sender, EventArgs e)
       {
           OpenFileDialog open = new OpenFileDialog();//创建OpenFileDialog实例
            open.Filter = "Excel文件|*.xls";
            open.Multiselect = false;                  //每次只能选择一个文件
            if (open.ShowDialog() == DialogResult.OK)
            {
                string fullpath = open.FileName;       //文件路径
                FileStream fs = new FileStream(fullpath, FileMode.Open, FileAccess.Read);
                //把fullpath路径下的文件以打开、只读方式读入流
                Wordbytes1 = new byte[fs.Length];//字节数组的大小等于流的长度
               
              fs.Read(Wordbytes1, 0, System.Convert.ToInt32(fs.Length));//从流中读取全部字节,并将其写入字节数组
            }
还有不太明白你第二个问题的意思!

#7


第二个问题是第一个的逆向吗?从数据库中取出字段,记录主键,并且把excel所在字段写入文件,然后修改并更新数据?楼主考虑下把文件以二进制方式存入数据库是否必要,如果要经常性对文件进行修改,那么只保存文件的路径更符合应用,毕竟只涉及到io操作。

#8


第二个问题是指:当通过读取数据库字节流方式将Excel文件显示给用户时,如若用户修改,如何来保存

#9


引用 7 楼 apolo11hao 的回复:
第二个问题是第一个的逆向吗?从数据库中取出字段,记录主键,并且把excel所在字段写入文件,然后修改并更新数据?楼主考虑下把文件以二进制方式存入数据库是否必要,如果要经常性对文件进行修改,那么只保存文件的路径更符合应用,毕竟只涉及到io操作。

谢谢你的善意提醒,这样作可以隐藏excel文件的存在

#10


大家帮忙看看

#11


up

#12


第一次保存时有一个Excel文件的模板
第二次保存没有Excel文件存在,显示给用户Excel文件从数据库中读取的

#13


直接导入建表就好了。搞这么麻烦干嘛。

#14


直接到处建表,那么有100个甚至更多Excel模板,岂不是要建那么多表?

#15


up

#16


 不会,顶起

#17


我以前再一个项目中做过:
  先是把execel中的数据 掉入C#Winfrom中的dataGridview中。
  然后把再遍历数据导入到sql2000中。

#18


再次顶

#19


ding

#20


换个思路吧,使用office2003以上版本,sql2005以上版本,都支持xml的,将Excel文件导出为xml保存入数据库字段,读取时就可以用dataset.readxml方法得到数据,用GridView显示并修改,完了再更新数据库。

#1


up

#2


直接保存成流文件就行拉。

#3


up

#4



public static byte[] GetBinary(string fileName)
        {
            FileInfo fi = new FileInfo(fileName);
            FileStream fs = fi.OpenRead();
            byte[] bytes = new byte[fs.Length];
            fs.Read(bytes, 0, Convert.ToInt32(fs.Length));
            fs.Close();
            return bytes;
        }

将方法的返回值存入数据库

#5


那么第二个问题怎么解决

#6



private void button_添加数据文件_Click(object sender, EventArgs e)
       {
           OpenFileDialog open = new OpenFileDialog();//创建OpenFileDialog实例
            open.Filter = "Excel文件|*.xls";
            open.Multiselect = false;                  //每次只能选择一个文件
            if (open.ShowDialog() == DialogResult.OK)
            {
                string fullpath = open.FileName;       //文件路径
                FileStream fs = new FileStream(fullpath, FileMode.Open, FileAccess.Read);
                //把fullpath路径下的文件以打开、只读方式读入流
                Wordbytes1 = new byte[fs.Length];//字节数组的大小等于流的长度
               
              fs.Read(Wordbytes1, 0, System.Convert.ToInt32(fs.Length));//从流中读取全部字节,并将其写入字节数组
            }
还有不太明白你第二个问题的意思!

#7


第二个问题是第一个的逆向吗?从数据库中取出字段,记录主键,并且把excel所在字段写入文件,然后修改并更新数据?楼主考虑下把文件以二进制方式存入数据库是否必要,如果要经常性对文件进行修改,那么只保存文件的路径更符合应用,毕竟只涉及到io操作。

#8


第二个问题是指:当通过读取数据库字节流方式将Excel文件显示给用户时,如若用户修改,如何来保存

#9


引用 7 楼 apolo11hao 的回复:
第二个问题是第一个的逆向吗?从数据库中取出字段,记录主键,并且把excel所在字段写入文件,然后修改并更新数据?楼主考虑下把文件以二进制方式存入数据库是否必要,如果要经常性对文件进行修改,那么只保存文件的路径更符合应用,毕竟只涉及到io操作。

谢谢你的善意提醒,这样作可以隐藏excel文件的存在

#10


大家帮忙看看

#11


up

#12


第一次保存时有一个Excel文件的模板
第二次保存没有Excel文件存在,显示给用户Excel文件从数据库中读取的

#13


直接导入建表就好了。搞这么麻烦干嘛。

#14


直接到处建表,那么有100个甚至更多Excel模板,岂不是要建那么多表?

#15


up

#16


 不会,顶起

#17


我以前再一个项目中做过:
  先是把execel中的数据 掉入C#Winfrom中的dataGridview中。
  然后把再遍历数据导入到sql2000中。

#18


再次顶

#19


ding

#20


换个思路吧,使用office2003以上版本,sql2005以上版本,都支持xml的,将Excel文件导出为xml保存入数据库字段,读取时就可以用dataset.readxml方法得到数据,用GridView显示并修改,完了再更新数据库。

#21