将Excel表导入数据库,使存储过程进行更新
页面设计如下:
<table style="width: 991px; height: 42px">
<tr>
<td colspan="3">
导入数据:
<asp:FileUpload ID="FileUpload1" runat="server" style="position: static" />
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="读取数据" style="position: static;" /></td>
</tr>
<tr>
<td colspan="3">
<div style="width:100%;height:199px;overflow:auto" >
<asp:DataGrid ID="DataGrid1" runat="server" HorizontalAlign="Center" Height="186px" Width="978px" style="position: static">
</asp:DataGrid></div>
</td>
</tr>
后台代码如下:
<table style="width: 991px; height: 42px">
<tr>
<td colspan="3">
导入数据:
<asp:FileUpload ID="FileUpload1" runat="server" style="position: static" />
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="读取数据" style="position: static;" /></td>
</tr>
<tr>
<td colspan="3">
<div style="width:100%;height:199px;overflow:auto" >
<asp:DataGrid ID="DataGrid1" runat="server" HorizontalAlign="Center" Height="186px" Width="978px" style="position: static">
</asp:DataGrid></div>
</td>
</tr>后台代码如下:
1
protected void Button2_Click(object sender, EventArgs e)
2
{
3
4
string nd = DropDownList1.SelectedValue;
5
string km = DropDownList2.SelectedValue;
6
string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
7
"Data Source=" + FileUpload1.PostedFile.FileName.ToString() + ";" +
8
"Extended Properties=Excel 8.0;";
9
10
//建立EXCEL的连接
11
12
//建立EXCEL的连接
13
OleDbConnection objConn = new OleDbConnection(sConnectionString);
14
15
objConn.Open();
16
17
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);
18
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
19
objAdapter1.SelectCommand = objCmdSelect;
20
21
DataSet objDataset1 = new DataSet();
22
23
objAdapter1.Fill(objDataset1, "XLData");
24
25
// DataGrid1.DataSource = objDataset1.Tables[0].DefaultView; //测试代码,用来测试是否能读出EXCEL上面的数据
26
// DataGrid1.DataBind();
27
28
DataTable dt = objDataset1.Tables[0];
29
DataView myView = new DataView(dt);
30
31
//SQL SERVER的数据库连接
32
SqlConnection conn;
33
string dns = System.Configuration.ConfigurationSettings.AppSettings["ConStr"];//连接串
34
conn = new SqlConnection(dns);
35
36
SqlCommand cmd = conn.CreateCommand();
37
cmd.CommandType = CommandType.StoredProcedure;
38
cmd.CommandText = "Proc_Address";
39
40
int count = 0;//用来记录出错的条数
41
try
42
{
43
foreach (DataRowView myDrv in myView)
44
{
45
count++;
46
//要关闭上一次的SQL Server的连接
47
if (conn.State.ToString() != "Closed")
48
conn.Close();
49
50
//每一次都要清空所有的CMD的参数
51
cmd.Parameters.Clear();
52
53
//执行存储过程
54
//首先获得参数 共 3个
55
//@CardNo,@ToAddress,@CCAddress
56
SqlParameter paraxh = cmd.Parameters.Add("@xh", SqlDbType.Int);
57
SqlParameter paraname = cmd.Parameters.Add("@name", SqlDbType.Char);
58
SqlParameter parand = cmd.Parameters.Add("@nd", SqlDbType.Char);
59
SqlParameter parabj = cmd.Parameters.Add("@bj", SqlDbType.Int);
60
SqlParameter parazh = cmd.Parameters.Add("@zh", SqlDbType.Int);
61
// SqlParameter parazh = cmd.Parameters.Add("@xh", SqlDbType.Int);
62
//SqlParameter parayw = cmd.Parameters.Add("@yw", SqlDbType.Int);
63
//SqlParameter parasw = cmd.Parameters.Add("@sw", SqlDbType.Int);
64
//SqlParameter parayw = cmd.Parameters.Add("@yw", SqlDbType.Int);
65
//SqlParameter parasx = cmd.Parameters.Add("@sx", SqlDbType.Float);
66
67
SqlParameter parayw = cmd.Parameters.Add("@yw", SqlDbType.Int);
68
SqlParameter parasx = cmd.Parameters.Add("@sx", SqlDbType.Int);
69
SqlParameter parayy = cmd.Parameters.Add("@yy", SqlDbType.Int);
70
SqlParameter parazz = cmd.Parameters.Add("@zz", SqlDbType.Int);
71
SqlParameter parals = cmd.Parameters.Add("@ls", SqlDbType.Int);
72
SqlParameter paradl = cmd.Parameters.Add("@dl", SqlDbType.Int);
73
//表示是输出参数
74
SqlParameter parawl = cmd.Parameters.Add("@wl", SqlDbType.Int);
75
SqlParameter parahx = cmd.Parameters.Add("@hx", SqlDbType.Int);
76
SqlParameter parasw = cmd.Parameters.Add("@sw", SqlDbType.Int);
77
78
79
80
81
paraxh.Direction = ParameterDirection.Input;
82
paraname.Direction = ParameterDirection.Input;
83
parand.Direction = ParameterDirection.Input;
84
parabj.Direction = ParameterDirection.Input;
85
parazh.Direction = ParameterDirection.Input;
86
87
//parayw.Direction = ParameterDirection.Input;
88
parayw.Direction = ParameterDirection.Input;
89
parasx.Direction = ParameterDirection.Input;
90
parayy.Direction = ParameterDirection.Input;
91
parazz.Direction = ParameterDirection.Input;
92
parals.Direction = ParameterDirection.Input;
93
paradl.Direction = ParameterDirection.Input;
94
parawl.Direction = ParameterDirection.Input;
95
parahx.Direction = ParameterDirection.Input;
96
parasw.Direction = ParameterDirection.Input;
97
98
//参数赋值
99
paraxh.Value = myDrv[0].ToString().Trim().ToString();
100
paraname.Value = myDrv[1].ToString().Trim();
101
parand.Value = myDrv[2].ToString().Trim();
102
parabj.Value = myDrv[3].ToString().Trim();
103
parazh.Value = myDrv[4].ToString().Trim();
104
//parayw.Value = myDrv[3].ToString().Trim();
105
parayw.Value = myDrv[5].ToString().Trim();
106
parasx.Value = myDrv[6].ToString().Trim();
107
parayy.Value = Convert.ToInt32(myDrv[7]).ToString().Trim();
108
parazz.Value = Convert.ToInt32(myDrv[8]).ToString().Trim();
109
parals.Value = Convert.ToInt32(myDrv[9]).ToString().Trim();
110
paradl.Value = Convert.ToInt32(myDrv[10]).ToString().Trim();
111
parawl.Value = myDrv[11].ToString().Trim();
112
parahx.Value = myDrv[12].ToString().Trim();
113
parasw.Value = myDrv[13].ToString().Trim();
114
115
116
conn.Open();
117
cmd.ExecuteNonQuery();//写入SQL数据库
118
119
}
120
Response.Write("导入成功!!");
121
}
122
catch
123
{
124
125
//cmd.ExecuteNonQuery();
126
Page.Response.Write("alert('第" + count.ToString() + "条数据出错!');");
127
objConn.Close();//关闭EXCEL的连接
128
}
129
130
131
132
133
}
134
protected void Button2_Click(object sender, EventArgs e)2
{3
4
string nd = DropDownList1.SelectedValue;5
string km = DropDownList2.SelectedValue;6
string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +7
"Data Source=" + FileUpload1.PostedFile.FileName.ToString() + ";" +8
"Extended Properties=Excel 8.0;";9

10
//建立EXCEL的连接11

12
//建立EXCEL的连接13
OleDbConnection objConn = new OleDbConnection(sConnectionString);14

15
objConn.Open();16

17
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);18
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();19
objAdapter1.SelectCommand = objCmdSelect;20

21
DataSet objDataset1 = new DataSet();22

23
objAdapter1.Fill(objDataset1, "XLData");24

25
// DataGrid1.DataSource = objDataset1.Tables[0].DefaultView; //测试代码,用来测试是否能读出EXCEL上面的数据26
// DataGrid1.DataBind();27

28
DataTable dt = objDataset1.Tables[0];29
DataView myView = new DataView(dt);30

31
//SQL SERVER的数据库连接32
SqlConnection conn;33
string dns = System.Configuration.ConfigurationSettings.AppSettings["ConStr"];//连接串34
conn = new SqlConnection(dns);35

36
SqlCommand cmd = conn.CreateCommand();37
cmd.CommandType = CommandType.StoredProcedure;38
cmd.CommandText = "Proc_Address";39

40
int count = 0;//用来记录出错的条数41
try42
{43
foreach (DataRowView myDrv in myView)44
{45
count++;46
//要关闭上一次的SQL Server的连接47
if (conn.State.ToString() != "Closed")48
conn.Close();49

50
//每一次都要清空所有的CMD的参数51
cmd.Parameters.Clear();52

53
//执行存储过程54
//首先获得参数 共 3个55
//@CardNo,@ToAddress,@CCAddress56
SqlParameter paraxh = cmd.Parameters.Add("@xh", SqlDbType.Int);57
SqlParameter paraname = cmd.Parameters.Add("@name", SqlDbType.Char);58
SqlParameter parand = cmd.Parameters.Add("@nd", SqlDbType.Char);59
SqlParameter parabj = cmd.Parameters.Add("@bj", SqlDbType.Int);60
SqlParameter parazh = cmd.Parameters.Add("@zh", SqlDbType.Int);61
// SqlParameter parazh = cmd.Parameters.Add("@xh", SqlDbType.Int);62
//SqlParameter parayw = cmd.Parameters.Add("@yw", SqlDbType.Int);63
//SqlParameter parasw = cmd.Parameters.Add("@sw", SqlDbType.Int);64
//SqlParameter parayw = cmd.Parameters.Add("@yw", SqlDbType.Int);65
//SqlParameter parasx = cmd.Parameters.Add("@sx", SqlDbType.Float);66

67
SqlParameter parayw = cmd.Parameters.Add("@yw", SqlDbType.Int);68
SqlParameter parasx = cmd.Parameters.Add("@sx", SqlDbType.Int);69
SqlParameter parayy = cmd.Parameters.Add("@yy", SqlDbType.Int);70
SqlParameter parazz = cmd.Parameters.Add("@zz", SqlDbType.Int);71
SqlParameter parals = cmd.Parameters.Add("@ls", SqlDbType.Int);72
SqlParameter paradl = cmd.Parameters.Add("@dl", SqlDbType.Int);73
//表示是输出参数74
SqlParameter parawl = cmd.Parameters.Add("@wl", SqlDbType.Int);75
SqlParameter parahx = cmd.Parameters.Add("@hx", SqlDbType.Int);76
SqlParameter parasw = cmd.Parameters.Add("@sw", SqlDbType.Int);77

78

79

80

81
paraxh.Direction = ParameterDirection.Input;82
paraname.Direction = ParameterDirection.Input;83
parand.Direction = ParameterDirection.Input;84
parabj.Direction = ParameterDirection.Input;85
parazh.Direction = ParameterDirection.Input;86

87
//parayw.Direction = ParameterDirection.Input;88
parayw.Direction = ParameterDirection.Input;89
parasx.Direction = ParameterDirection.Input;90
parayy.Direction = ParameterDirection.Input;91
parazz.Direction = ParameterDirection.Input;92
parals.Direction = ParameterDirection.Input;93
paradl.Direction = ParameterDirection.Input;94
parawl.Direction = ParameterDirection.Input;95
parahx.Direction = ParameterDirection.Input;96
parasw.Direction = ParameterDirection.Input;97

98
//参数赋值99
paraxh.Value = myDrv[0].ToString().Trim().ToString();100
paraname.Value = myDrv[1].ToString().Trim();101
parand.Value = myDrv[2].ToString().Trim();102
parabj.Value = myDrv[3].ToString().Trim();103
parazh.Value = myDrv[4].ToString().Trim();104
//parayw.Value = myDrv[3].ToString().Trim();105
parayw.Value = myDrv[5].ToString().Trim();106
parasx.Value = myDrv[6].ToString().Trim();107
parayy.Value = Convert.ToInt32(myDrv[7]).ToString().Trim();108
parazz.Value = Convert.ToInt32(myDrv[8]).ToString().Trim();109
parals.Value = Convert.ToInt32(myDrv[9]).ToString().Trim();110
paradl.Value = Convert.ToInt32(myDrv[10]).ToString().Trim();111
parawl.Value = myDrv[11].ToString().Trim();112
parahx.Value = myDrv[12].ToString().Trim();113
parasw.Value = myDrv[13].ToString().Trim();114
115

116
conn.Open();117
cmd.ExecuteNonQuery();//写入SQL数据库118

119
}120
Response.Write("导入成功!!");121
}122
catch123
{124

125
//cmd.ExecuteNonQuery();126
Page.Response.Write("alert('第" + count.ToString() + "条数据出错!');");127
objConn.Close();//关闭EXCEL的连接128
}129

130
131

132

133
}134


浙公网安备 33010602011771号