1
using System;
2
using System.Collections;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Web;
7
using System.Web.SessionState;
8
using System.Web.UI;
9
using System.Web.UI.WebControls;
10
using System.Web.UI.HtmlControls;
11
using System.Data.SqlClient;
12
using System.IO;
13
14
namespace MyTest
15
{
16
/// <summary>
17
/// WebForm1 的摘要说明。
18
/// </summary>
19
public class WebForm1 : System.Web.UI.Page
20
{
21
protected System.Web.UI.WebControls.TextBox TextBox1;
22
protected System.Web.UI.WebControls.Button SubmitButton;
23
protected System.Web.UI.HtmlControls.HtmlInputFile UP_FILE;
24
protected System.Web.UI.WebControls.Button butDisplay;
25
protected System.Web.UI.WebControls.TextBox txtPicID;
26
protected System.Web.UI.WebControls.Label lblMessage;
27
string ConnStr = "server=localhost;uid=sa;pwd=;database=MyTest";
28
29
30
private void Page_Load(object sender, System.EventArgs e)
31
{
32
33
}
34
35
Web 窗体设计器生成的代码
57
58
//存入数据库
59
private void SubmitButton_Click(object sender, System.EventArgs e)
60
{
61
//HttpPostedFile对象,用于读取图像文件属性
62
HttpPostedFile UpFile = UP_FILE.PostedFile;
63
//FileLength变量存储图片的字节大小
64
int FileLength = UpFile.ContentLength;
65
66
try
67
{
68
if(FileLength == 0)
69
{
70
this.lblMessage.Text = "您未选择上传的文件";
71
}
72
else
73
{
74
//创建存储图片文件的临时Byte数组
75
byte[] FileByleArray = new byte[FileLength];
76
//建立数据流对象
77
Stream streamObject = UpFile.InputStream;
78
//读取图像文件数据
79
//FileByleArray为数据储存体,0为数据指针位置、FileLength为数据长度
80
streamObject.Read(FileByleArray,0,FileLength);
81
//数据库操作
82
string query = "INSERT INTO Picture(PicData,PicType,PicDescription,PicSize) VALUES (@PicData,@PicType,@PicDescription,@PicSize)";
83
SqlCommand com = new SqlCommand(query,new SqlConnection(ConnStr));
84
85
//添加各项参数并赋值
86
com.Parameters.Add("@PicData",SqlDbType.Image);
87
com.Parameters.Add("@PicType",SqlDbType.VarChar,50);
88
com.Parameters.Add("@PicDescription",SqlDbType.VarChar,200);
89
com.Parameters.Add("@PicSize",SqlDbType.BigInt);
90
com.Parameters["@PicData"].Value = FileByleArray;
91
com.Parameters["@PicType"].Value = UpFile.ContentType;
92
com.Parameters["@PicDescription"].Value = this.TextBox1.Text;
93
com.Parameters["@PicSize"].Value = FileLength;
94
95
//执行数据库操作
96
com.Connection.Open();
97
com.ExecuteNonQuery();
98
com.Connection.Close();
99
//提示上传成功
100
this.lblMessage.Text = "上传成功!";
101
}
102
}
103
catch(Exception er)
104
{
105
this.lblMessage.Text = er.Message.ToString();
106
}
107
}
108
109
//读出图片并显示
110
private void butDisplay_Click(object sender, System.EventArgs e)
111
{
112
//获取输入的图片ID
113
int ImgID = int.Parse(this.txtPicID.Text);
114
//创建数据库连接字符串和SQL语句
115
string query = "SELECT * FROM Picture WHERE ID=@ImgID";
116
//创建SqlCommand对象并对参数进行初始化赋值
117
SqlCommand com = new SqlCommand(query,new SqlConnection(ConnStr));
118
com.Parameters.Add("@ImgID",SqlDbType.BigInt);
119
com.Parameters["@ImgID"].Value = ImgID;
120
//打开数据库连接
121
com.Connection.Open();
122
SqlDataReader dr = com.ExecuteReader();
123
124
if(dr.Read())
125
{
126
Response.ContentType = dr["PicType"].ToString();
127
Response.OutputStream.Write((byte[])dr["PicData"],0,int.Parse(dr["PicSize"].ToString())+50000);
128
}
129
else
130
{
131
this.lblMessage.Text = "没有这个图片的ID号";
132
Response.End();
133
}
134
135
//关闭SqlDataReader对象和数据库连接
136
dr.Close();
137
com.Connection.Close();
138
139
}
140
141
142
}
143
}
144

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144
