在Dataset和datagridview中对数据进行删除、取消等操作,并将结果保存到数据库中。
's1IK.WqF#Q%W9[0n7t0Form1.cs
bhX-y*D0usingSystem;
+ddK ]Z8e{3C,l0usingSystem.Collections.Generic;51Testing软件测试网w%g0R~#Qi
usingSystem.ComponentModel;
]@ y9oacrn0usingSystem.Data;
*x3V
q)w+Zx7Z3t0usingSystem.Drawing;
u~Y3F v0usingSystem.Text;51Testing软件测试网6IM3N,S,t(gflE
usingSystem.Windows.Forms;51Testing软件测试网6h:@.nd-i;l
51Testing软件测试网l7U:yZHWQ
namespaceWindowsApplication2
BF{O3rE6a S7iF6?0{
RmS5A*df-m0 publicpartialclassForm1:Form51Testing软件测试网.x S'L fy(D0lg
{
#V&LL'c,MX0 publicForm1()
|&~5iL
X8Q0 {
1|wH0t6t#C+}\b\0 InitializeComponent();51Testing软件测试网L2E g.I%g6xx
ClassLibrary1.oracledataaccess =newClassLibrary1.oracle();
k2wXK2Y0 DataSetds = dataaccess.getData();51Testing软件测试网KUDT*Q1i/E}"jZg-}
dataGridView1.DataSource = ds.Tables[0];
]l Y%i0JC1y.T0 /*首先我们通过form1里头的load事件把数据加载到了datagridview中,dataset(数据在内存51Testing软件测试网/gRQv\b/N
中的缓存)已经和datagridview的datasource榜定在一起了*/
D}'?%ze;]7q0 }
qpM,U~&p$\ot*}0 51Testing软件测试网!Jr Kd"Q8R-}O
privatevoidbutdelete_Click(objectsender,EventArgse)51Testing软件测试网_.|J$w5Z O
{51Testing软件测试网|-mLxY3_Z*l
if(this.dataGridView1.SelectedRows.Count > 0)
M.D#K3N;[0 {51Testing软件测试网[R/I@MT(Y
for(inti =this.dataGridView1.SelectedRows.Count - 1; i >= 0; --i)
i^@~JYa0 {51Testing软件测试网X7~)_T2Tp*o]&u
DataRowViewrowview = ((DataRowView)this.dataGridView1.SelectedRows[i].DataBoundItem);
$W }7B |'cO!Ev0Ck8\4V0 //获取用于填充行的数据绑带对象
&C.Brlf0 rowview.Delete();
V,nbww_0 /*选中的行删除,但此时的被删除的数据并没有被真正的从数据库中删除,它只是51Testing软件测试网aZ}*jTZ,g5W
做了一个删除标记。*/
CLt"Q6]_!y
{X3P0 System.Windows.Forms.MessageBox.Show(rowview.Row.RowState.ToString());
&F+[A*V:d!S0 /*打出行的状态查看一下。Rowstate在此非常重要,因为将涉及到对数据库的操作51Testing软件测试网/{9p!ff8c$a
系统怎么判断这一批的数据是被删除掉了51Testing软件测试网|&?_$w'b0g(}w
}51Testing软件测试网8f*p!Ct-]PfV
/*对于for循环中初始i值说明:datagridview将数据显示出来,每删除一行,51Testing软件测试网G5p p5FnH
this.dataGridView1.SelectedRows.Count就会减少一行,因此初值要注意*/51Testing软件测试网5N,HGM c5H7L2~/Rp!|
51Testing软件测试网e&bv"b'{_(lN
oL
}51Testing软件测试网;d
e!YM6a+L_5w\
}51Testing软件测试网"F"q5?2cZ2`)i7N
2@5B'e#_~/n'n0 privatevoidbutcancel_Click(objectsender,EventArgse)
7T,b(ueJ{9H^0 {51Testing软件测试网| r^hj!f#n5}
((DataTable)dataGridView1.DataSource).RejectChanges();51Testing软件测试网ldr(u.C+oi }
//回滚上次更新该表的操作
F8bU][:`i0 }
i2SnEwX%ZGK.R-Z0privatevoidbtnSave_Click(objectsender,EventArgse)
X Go%C7h1hO a0 {51Testing软件测试网8ed%AYz!YS"T
ClassLibrary1.oracledataaccess =newClassLibrary1.oracle();51Testing软件测试网:C"~j.Et
dataaccess.deleteData(((DataTable)dataGridView1.DataSource).DataSet);
s*Y5v8po(B0
r#u/WN%X.d7^.[~Y0 }
3w U&mGV.}n0 51Testing软件测试网*s}6d&qq^.@
}
P"R$UB7\_*F bX0}51Testing软件测试网 jo;Isc
Idb
Oracle.cs51Testing软件测试网X ^@d
| X5[Yn
usingSystem;
X+v4c+w%PR0usingSystem.Collections.Generic;
2R
lCQ
d)]{0usingSystem.Text;51Testing软件测试网4AF0^p [-xc
usingSystem.Data .OracleClient;51Testing软件测试网gm7ZRHj}#`
usingSystem.Data;51Testing软件测试网`H ur6RSYIr
51Testing软件测试网
D-Kw([vJN8f
namespaceClassLibrary151Testing软件测试网?3t
K
f8u"\
{51Testing软件测试网pIe
Z'ib"C
public classoracle51Testing软件测试网g/UK+K
g6]'Ru9J9t rw
{
X9s.R%?B)Ph0 stringmyConnectionText ="Data Source=MYORACLE;User Id=SYSTEM;Password=SYSTEM";
R:i[N9K
sF+Ro0 stringmySelectText ="SELECT * from scott.student";
%jd;rAO$I AOvS0 51Testing软件测试网X
~S7~'r;N-y
publicDataSetgetData()51Testing软件测试网,S!tpd:u yTg
{51Testing软件测试网6S0Z1x1ufb
OracleDataAdaptercustDA =newOracleDataAdapter(mySelectText, myConnectionText);
O6N%Q7J:p;_0 //实例化一个适配器,创建数据库的连接
aq9W-L6mI1Gf0 OracleConnectioncustConn = custDA.SelectCommand.Connection;51Testing软件测试网Oe!L%M5_*nI^
//打开数据库的连接51Testing软件测试网 G\^ue#EA
DataSetds =newDataSet();
UAk]z$}TC0 custDA.Fill(ds);
/G$r`$Sjzv0 //将对数据库的查询结果添加到DateSet中。51Testing软件测试网\`J;vLW
K]
returnds;
p3}yZ;Wm_a#k0 51Testing软件测试网,v*IOIYZ\(T
}51Testing软件测试网DDN1F7M*F
}51Testing软件测试网 Uo%KW&o
}51Testing软件测试网.aW;PdySUHK
最后的图片51Testing软件测试网9hr8G kIp
4qq3e(XkHJ5u5d0
^W A%W{+D0 删除选中行以后
P$]1EL0v!M3x0
vH3yM;N'X0在form1.cs设计中,拖拉一个datagridview,添加三个按钮,分别将它们的name和text属性改为51Testing软件测试网 Zm.A6T'f7X
butdelete.Name ="butdelete";51Testing软件测试网 U#I1eJ+wAp2`
butdelete.Text ="删除选中";
om6^9B6n7B*o0qV{0butcancel.Name ="butcancel";
-m:n+EP3z4z+m5w9Rym!I0butcancel.Text ="取消删除";
~V,S6jUkHV0butsave.Name ="butsave";
7Jc2rJBn^0butsave.Text ="保存";51Testing软件测试网@-W:M!\)_$l*f