在Dataset和datagridview中对数据进行删除、取消等操作,并将结果保存到数据库中。51Testing软件测试网 U9B K%_)J``&L
Form1.cs
O.qr%U JR0usingSystem;51Testing软件测试网l.X i$F^
usingSystem.Collections.Generic;
G"T Zm,A
Q0usingSystem.ComponentModel;
RT8Q&cw0usingSystem.Data;51Testing软件测试网lKw~
nMd-z!i]
usingSystem.Drawing;51Testing软件测试网?S"KP]
|
usingSystem.Text;
!C%a{G|8u8B7|0usingSystem.Windows.Forms;51Testing软件测试网
TwK+W!Z]r&F5U
dX%IQL8L9\'_0namespaceWindowsApplication2
6_H:{!S(`@6_$p0{
4F0pa};u6q!s0 publicpartialclassForm1:Form
(?[|$}C
~,AL0 {
9|T'u$CIm^0 publicForm1()
XW*i1@'p-Jl\0 {
1@bTg[,v0 InitializeComponent();
o[K&NO#S0 ClassLibrary1.oracledataaccess =newClassLibrary1.oracle();
iEu2o(P TlW0 DataSetds = dataaccess.getData();
Z2LGV-O3g-v`0 dataGridView1.DataSource = ds.Tables[0];51Testing软件测试网:pq9G\(Q1~-Y
/*首先我们通过form1里头的load事件把数据加载到了datagridview中,dataset(数据在内存51Testing软件测试网U:o5Y9l2?
中的缓存)已经和datagridview的datasource榜定在一起了*/
:A&W
bu$T0 }51Testing软件测试网4Mn3Yz}{#j#FN
D
tVL3WJ0 privatevoidbutdelete_Click(objectsender,EventArgse)51Testing软件测试网/X7t}1zv"u[
{51Testing软件测试网M7O!iRLA
]N'E
if(this.dataGridView1.SelectedRows.Count > 0)
sD(lB?+Dz0 {
3o R1i(v+^G)s)p?;|0 for(inti =this.dataGridView1.SelectedRows.Count - 1; i >= 0; --i)
b+bAh1i0e5E {A0 {51Testing软件测试网&b4nv1c-Juu i
DataRowViewrowview = ((DataRowView)this.dataGridView1.SelectedRows[i].DataBoundItem);51Testing软件测试网,H @%qV4u:OH0?
//获取用于填充行的数据绑带对象51Testing软件测试网MimJ#tVU3d
rowview.Delete();51Testing软件测试网jnO#N;[:`6e3U
/*选中的行删除,但此时的被删除的数据并没有被真正的从数据库中删除,它只是
T.M&fg"n\
Ax0 做了一个删除标记。*/
!HF-w#hV;gG#A2c9m0 System.Windows.Forms.MessageBox.Show(rowview.Row.RowState.ToString());51Testing软件测试网:Ym'k9p9{U
/*打出行的状态查看一下。Rowstate在此非常重要,因为将涉及到对数据库的操作
l7D~9P
R0 系统怎么判断这一批的数据是被删除掉了51Testing软件测试网
sG]T8L5B
}51Testing软件测试网J;X'|%h!b'R0] Y4t5F
/*对于for循环中初始i值说明:datagridview将数据显示出来,每删除一行,
.D3J3I#p.c8ae
mD:mVh0 this.dataGridView1.SelectedRows.Count就会减少一行,因此初值要注意*/
MC"`.q3C0S0
!`DS
\e;R#U6`0 }51Testing软件测试网5DV^r
F3i.Q
}
~Ur ~~"q
IPr0
^A ]&D(v+s0 privatevoidbutcancel_Click(objectsender,EventArgse)51Testing软件测试网n*J&k,dm(JO
]v#e!n@
{
#ott6XR ~7a0 ((DataTable)dataGridView1.DataSource).RejectChanges();
|-G*n6_%cIs @0 //回滚上次更新该表的操作
G6E+M\IOy2r?0 }
OG/`%@E2BH0privatevoidbtnSave_Click(objectsender,EventArgse)51Testing软件测试网HjIn(jo/`
{
M;R$P-h#l#rg
v(j*?0ClassLibrary1.oracledataaccess =newClassLibrary1.oracle();51Testing软件测试网1eJ~
fap%g&_
dataaccess.deleteData(((DataTable)dataGridView1.DataSource).DataSet);51Testing软件测试网m-F%m|8]y1o,}2c
.|p%GCQq"U0 }51Testing软件测试网 X
D/^Z*[
D}x*w Amb0 }
GAM1g5]&_3tu0}
[;XF"q6S${Y0Oracle.cs51Testing软件测试网;m(tky(N.lBr5n)^
usingSystem;51Testing软件测试网sIZ:jQ&I[h8Y
usingSystem.Collections.Generic;
N
?M3U$@1|v#p0usingSystem.Text;51Testing软件测试网5wYs-d;gk
usingSystem.Data .OracleClient;
bPTV'L3[/SR&G7R0usingSystem.Data;
+B-xQo
Z#O0 51Testing软件测试网4Z'B-`"`]f!{*u]
namespaceClassLibrary151Testing软件测试网rS~7fg%E`.m
{51Testing软件测试网w%nK/cq)]/h:v
public classoracle
;],C;Dz*t g/O0 {
7R0GcJ9m FMz0 stringmyConnectionText ="Data Source=MYORACLE;User Id=SYSTEM;Password=SYSTEM";51Testing软件测试网F!N iE0Zk
stringmySelectText ="SELECT * from scott.student";51Testing软件测试网-v#W)Y4c;V
51Testing软件测试网%b%ud%D P_ G'A|
publicDataSetgetData()51Testing软件测试网p;p*h&MC+LI-T
{
7JwwFP c0 OracleDataAdaptercustDA =newOracleDataAdapter(mySelectText, myConnectionText);51Testing软件测试网
xwE$NY.\8Zw
//实例化一个适配器,创建数据库的连接
"A+aSa.z*`G0 OracleConnectioncustConn = custDA.SelectCommand.Connection;51Testing软件测试网(_:\M$j1k
//打开数据库的连接
zl_"m;PJfia4b8R0 DataSetds =newDataSet();51Testing软件测试网/I6W'lZFZ-|\
custDA.Fill(ds);51Testing软件测试网b
b,K-ub"SWk
//将对数据库的查询结果添加到DateSet中。51Testing软件测试网NMW@9dK,go
returnds;51Testing软件测试网t+_A,y7t
51Testing软件测试网6Y MSXb\;r
}51Testing软件测试网YkF/YQGthQ#B
}51Testing软件测试网D!z7A9N2\~+M5M.R
}
0[$Zdenb\0最后的图片51Testing软件测试网5g;iG
n*h
51Testing软件测试网!vE&m;?S9J
w3nI&]-Y0 删除选中行以后51Testing软件测试网lZ6bG~*b
:Fx&K@(\r9C^5E:x-M
{r0在form1.cs设计中,拖拉一个datagridview,添加三个按钮,分别将它们的name和text属性改为51Testing软件测试网[&L^3ZU/t1@,?
butdelete.Name ="butdelete";51Testing软件测试网mX,M.v$F2w
butdelete.Text ="删除选中";51Testing软件测试网*A6i,Z^o2Cl6xS ~ |]
butcancel.Name ="butcancel";51Testing软件测试网Yw1~&oM
butcancel.Text ="取消删除";51Testing软件测试网*v'~?)Y gyJ
butsave.Name ="butsave";
f9vx5OQ2`}3Ve0butsave.Text ="保存";51Testing软件测试网&r;Qp(n%gd[