通过流方式读取sql2000的image类型,并写在指定的本地目录,代码如下:
byte[] content;
SqlConnection conn = new SqlConnection("server=.;database=zslib;uid=sa;pwd=");
SqlDataAdapter da = new SqlDataAdapter("select * from t_cd where cd_image is not null", conn);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable imagedt = ds.Tables[0]; int num = 1;
for (int i = 0; i < imagedt.Rows.Count; i++)
{
string cd_id = imagedt.Rows[i]["cd_id"].ToString();
content = (byte[])imagedt.Rows[i]["cd_image"];
int ArraySize = content.GetUpperBound(0);
FileStream stream = new FileStream("D:\\cd\\" + cd_id + ".jpg", FileMode.OpenOrCreate, FileAccess.Write);
stream.Write(content, 0, ArraySize);
stream.Close();
num++;
}
Console.WriteLine("已导出"+num+"张图片!");PS:亲爱的朋友们,别忘了导入相应的命名空间.
我只是个新手,对c#并不是非常的了解,或许以上的代码还可以优化,欢迎大家提出宝贵的建议.
byte[] content;
SqlConnection conn = new SqlConnection("server=.;database=zslib;uid=sa;pwd=");
SqlDataAdapter da = new SqlDataAdapter("select * from t_cd where cd_image is not null", conn);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable imagedt = ds.Tables[0]; int num = 1;
for (int i = 0; i < imagedt.Rows.Count; i++)
{
string cd_id = imagedt.Rows[i]["cd_id"].ToString();
content = (byte[])imagedt.Rows[i]["cd_image"];
int ArraySize = content.GetUpperBound(0);
FileStream stream = new FileStream("D:\\cd\\" + cd_id + ".jpg", FileMode.OpenOrCreate, FileAccess.Write);
stream.Write(content, 0, ArraySize);
stream.Close();
num++;
}
Console.WriteLine("已导出"+num+"张图片!");PS:亲爱的朋友们,别忘了导入相应的命名空间.
我只是个新手,对c#并不是非常的了解,或许以上的代码还可以优化,欢迎大家提出宝贵的建议.
解决方案 »
- DesignSurface如何让设计器响应键盘和鼠标指令呢?
- 在WPF中控件的长宽随窗口大小改变
- VS2003 C#中如何把CSV文件中的内容导入到数据库中指定表
- 有关Winfrom中DataGridView设置列数的问题
- 关于数据库存储加密
- 更新数据时用存储过程无错误去没有修改???为什么?????
- 请问大家c# primer plus 这本书怎么样啊?
- winform:如何把bitmap保存为二进制文件,并用该二进制文件在程序中重画该图?
- C# 操作2个list进行比较。
- C# 写Excel文件生成后,再去读取时报错不是预期格式或没有表Sheet1 ,实际都有
- 打开的窗体值传递问题?
- 内存中数据批量更新到数据库
不要用绝对路径
da.Fill(ds);
DataTable imagedt = ds.Tables[0]; DataTable imagedt =new DataTable();
da.Fill(imagedt);
i 和 num 定义重复了啊?