如何在C# .net 中吧图片从数据库中显示到Gridview???
4个回答
展开全部
我来告诉你个思路吧
1.需要把图片从数据库中读取出来(
使用的SQLServer数据库的话 他里边有一个 image 的数据类型
在 我们需要使用流的形式 把读出来
)
2.获取到图片流之后 我们再在代码中把图片流 绑定到 控件
(
由于一年多 没做C# 开发 所以 那些对象名字一时都记不起来
大概就点到这里 相应的代码网上应该很多
)
下边是我帮你找的 读取 image 列里的数据 并转成图片文件的 代码
你把理解后 就可以 你上边的需求绝对就没问题了
读取sqlserver图片image数据生成图片文件
//test.java
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class test {
public static void main (String [] arge){
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=TableName", user="username",
password="password";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement();
ResultSet rs;
String strSql = "select name,photo from patient where name='name";
InputStream in = null;
FileOutputStream fileOutStream = null;
rs=stmt.executeQuery(strSql);
while(rs.next()){
//Windows 系统下存储路径用2个反斜杠
DataOutputStream sos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("d:\\"+ rs.getString("name") +".jpg")));
//读出流用getBinaryStream()方法。
in = rs.getBinaryStream("photo");
//用缓存数组逐渐输出流
int len = 0;
byte[] b = new byte[1024];
while ((len = in.read(b)) != -1) {
sos.write(b,0,len);
}
sos.close();
in.close();
}
rs.close();
conn.close();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
1.需要把图片从数据库中读取出来(
使用的SQLServer数据库的话 他里边有一个 image 的数据类型
在 我们需要使用流的形式 把读出来
)
2.获取到图片流之后 我们再在代码中把图片流 绑定到 控件
(
由于一年多 没做C# 开发 所以 那些对象名字一时都记不起来
大概就点到这里 相应的代码网上应该很多
)
下边是我帮你找的 读取 image 列里的数据 并转成图片文件的 代码
你把理解后 就可以 你上边的需求绝对就没问题了
读取sqlserver图片image数据生成图片文件
//test.java
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class test {
public static void main (String [] arge){
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=TableName", user="username",
password="password";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement();
ResultSet rs;
String strSql = "select name,photo from patient where name='name";
InputStream in = null;
FileOutputStream fileOutStream = null;
rs=stmt.executeQuery(strSql);
while(rs.next()){
//Windows 系统下存储路径用2个反斜杠
DataOutputStream sos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("d:\\"+ rs.getString("name") +".jpg")));
//读出流用getBinaryStream()方法。
in = rs.getBinaryStream("photo");
//用缓存数组逐渐输出流
int len = 0;
byte[] b = new byte[1024];
while ((len = in.read(b)) != -1) {
sos.write(b,0,len);
}
sos.close();
in.close();
}
rs.close();
conn.close();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2011-04-23
展开全部
一般在数据库里保存的都是图片相对路径,在GridView中添加图片列或模板列中添加显示图片的控件,简单绑定<img src>也可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在GridView中编辑列,添加ImageField列,在ImageField中DataImageUrlField中填写数据库表中图片的字段。就能在GridView中显示图片了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我听老师讲过,那个要进行转换,具体的操作,我就不知道了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询