ADO.Net数据操作问题,很简单

cnwolfs 2003-08-19 12:02:15
在ADO中有Recordset,其中有属性EOF和BOF,因此我们可以利用这个属性判断记录的有无,然后决定采用添加还是修改操作,VB中的代码例如:

strSQL = "Select id,aa,bb from table1 where id = 1 "

使用ADO打开之后获得Recordset记录集rs
rs.Open strSQL, conn, adOpenKeyset, adLockPessimistic

然后就可以判断是否有记录存在,决定执行何种操作,例如

If Not (rs.EOF or rs.BOF) then
rs.Fields("id ").Value = 1
rs.Fields("aa").Value = "aa"
rs.Fields("bb ").Value = "bb"
rs.Update
else
rs.AddNew
rs.Fields("id ").Value = 1
rs.Fields("aa").Value = "aa"
rs.Fields("bb ").Value = "bb"
rs.Update
end if


请问要完成类似这样的功能,在C#中使用ADO.Net中需要如何完成?

谢谢
...全文
30 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxrl 2003-08-19
  • 打赏
  • 举报
回复
路过路过路过路过路过路过路过路过路过路过路过路过█████████路过路过
路过路过路过路过路过路过路过路过路过███████████████路过路过
路过路过路过路过路过路过路过无██████████████████路过路过
路过路过路过路过路过无████████████████路过路过路过路过路过
路过路过路过路过███████无███路过█████路过路过路过路过路过无
路过无████████████路过路过路过████路过路过路过路过路过路过
无██████████████路过路过路过████路过路过路过路过路过路过
无████████████路过路过路过无███████████路过路过路过
无████████████路过路过路过██████████████路过路过
路过██████████路过路过无██████路过无███████路过路过
路过路过路过路过████路过路过无████路过路过路过█████路过路过无
路过路过路过路过████路过路过████路过██路过无█████路过路过无
路过路过路过路过████路过路过████路过████无█████路过路过无
路过路过路过路过████路过路过████路过████无█████路过路过无
路过路过路过路过████路过路过████路过███路过█████路过路过无
路过路过路过路过████路过路过████路过███路过█████路过路过无
路过路过路过路过████路过路过████无████路过█████路过路过无
路过路过路过路过████路过路过████无████路过█████路过路过无
路过路过路过路过████路过路过████无████路过█████路过路过无
路过路过路过路过████路过路过████无████路过█████路过路过无
路过路过路过路过████路过路过███路过████路过█████路过路过无
路过██路过无█████路过路过███路过███路过无█████路过路过无
路过██████████路过路过无██路过██路过路过█████路过路过无
路过无█████████路过路过路过路过███路过路过无████路过路过无
路过路过无███████路过路过路过路过███无████路过路过路过路过无
路过路过路过██████路过路过路过无████路过█████路过路过路过无
路过路过路过路过无███路过路过路过█████路过无███████路过路过
路过路过路过路过路过路过路过路过██████路过路过无██████路过路过
路过路过路过路过路过路过路过无██████路过路过路过███████路过无
路过路过路过路过路过路过路过█████路过路过路过路过无██████路过无
路过路过路过路过路过路过无█████路过路过路过路过路过无████路过路过
路过路过路过路过路过路过███路过路过路过路过路过路过路过无███路过路过
CMIC 2003-08-19
  • 打赏
  • 举报
回复
up
qimini 2003-08-19
  • 打赏
  • 举报
回复
1、OleDataAdapter adp=new OleDataAdapter(strQuery,yourConnection);
DataSet rs=new DataSet();
adp.Fill(rs); //取得DataSet-rs
2、if(ds.Rows.Count>0)
{
rs[0][0]= 1;
rs[0][1]= "aa";
rs[0][2]= "bb";

adp.Update(rs);
}
else
{
DataRow dr=rs.Rows.NewRow();
dr[0]=1;
dr[1]="aa";
dr[1]="bb;

rs.Rows.Add(dr);

}


calmzeal 2003-08-19
  • 打赏
  • 举报
回复
up
jjcccc 2003-08-19
  • 打赏
  • 举报
回复
strSQL = "Select id,aa,bb from table1 where id = 1 ";

SqlConnection conn= new SqlConnection("连接字符串");

conn.Open();

SqlCommand cmd= new SqlCommand(strSQL,conn);

SqlDataReader dr=cmd.ExecuteReader();

while (dr.Read())
{
//
}


cnwolfs 2003-08-19
  • 打赏
  • 举报
回复
其实我已经调整了你的写法,但是还是无法写入,错误信息也很奇怪,就只有“insert”

你所写的那些几乎都是错的,但是能看明白
qimini 2003-08-19
  • 打赏
  • 举报
回复
完整的你看看MSDN.大致思路是先建立数据适配器(*Adapter)->
填充数据集(DataSet)->用Rows[n][m]的n行m列来访问数据
*Adapter会有SelectCommand、UpdateCommand、InsertCommand、DeleteCommand四个属性
你如果要对数据集执行如上操作,则必需手动指定相应的*Command对象(或者用SqlCommandBuilder绑定到数据适配器来自动生成相应的Command对象)


Hope it would help you !
qimini 2003-08-19
  • 打赏
  • 举报
回复
完整的你看看MSDN.大致思路是先建立数据适配器(*Adapter)->
填充数据集(DataSet)->用Rows[n][m]的n行m列来访问数据
*Adapter会有SelectCommand、UpdateCommand、InsertCommand、DeleteCommand四个属性
你如果要对数据集执行如上操作,则必需手动指定相应的*Command对象(或者用SqlCommandBuilder绑定到数据适配器来自动生成相应的Command对象)


Hope it would help you !
qimini 2003-08-19
  • 打赏
  • 举报
回复
不好意思,手写的没有调试 :)
要先
using System.Data;
using System.Data.OleDb;

OleDataAdapter adp=new OleDataAdapter(strQuery,yourConnection);>>>
OleDbDataAdapter adp=new OleDbDataAdapter(strQuery,yourConnection);
cnwolfs 2003-08-19
  • 打赏
  • 举报
回复
qimini(循序渐进)

怎么都是错的?
fq_ln 2003-08-19
  • 打赏
  • 举报
回复
可以通过DataSet或DataReader来进行数据访问
SqlConnection conn=new SqlConnection("server=ser;uid=sa;pwd=123456;database=dat");
SqlCommand cmd=new SqlCommand("select * from mytable",conn);
SqlDataReader dr=cmd.ExecuteReader();
while(dr.Read())//通过Read()方法使当前记录向前移动一条记录
{
dr.GetString(0).ToString();//此处可以获得相关列的值
}
tyc2002 2003-08-19
  • 打赏
  • 举报
回复
UP

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧