这两种绑定数据库的方式有什么不同?在线等。。。

guhonglangzi 2010-09-11 05:52:21
一种是直接把记录集绑定:
public void BindDropDownList(string str,DropDownList myDropDownList,string valueField,string textField)
{
Comm = new OleDbCommand(str , Conn);
dr = Comm.ExecuteReader();
myDropDownList.DataSource = dr;
myDropDownList.DataValueField = valueField;
myDropDownList.DataTextField = textField;
myDropDownList.DataBind();
dr.Close();
}
另一种是通过dataset绑定:
public void Fill(string str)
{
OleDbAdapter = new OleDbDataAdapter(str,Conn);
ds = new DataSet();
OleDbAdapter.Fill(ds);
}
public void BindDropDownListDs(string strSql, DropDownList myDropDownList, string valueField, string textField)
{
Fill(strSql);
myDropDownList.DataSource = ds.Tables[0].DefaultView;
myDropDownList.DataTextField = textField;
myDropDownList.DataValueField = valueField;
myDropDownList.DataBind();
}
问题1:如果说第一种是直接建立连接,操作数据库。第二种是把数据先用Dataset加载到内存中,再更新。那么请问,这两种方式那一种比较好?分别适用于什么样的情况。

问题2:请看下面这段代码,“清除HTML文件的代码和SQL指定的代码”什么意思,这个方法是干嘛用的,什么时候用?

代码:
///<summary>
///清除HTML文件的代码和SQL指定的代码
///</summary>

///<param name="Str"></param>
///<returns></returns>

public string SetNOHtmlChr(string Str)
{
Str = Str.Replace("'", "’");
Str = Str.Replace("<", "〈");
Str = Str.Replace(">", "〉");
return Str;

}
多谢指教。
...全文
137 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
maotou3321 2010-09-11
  • 打赏
  • 举报
回复
buzhidao
kensouterry 2010-09-11
  • 打赏
  • 举报
回复
其实都是差不多的!
guhonglangzi 2010-09-11
  • 打赏
  • 举报
回复
///<summary>
///清除HTML文件的代码和SQL指定的代码
///</summary>

///<param name="Str"></param>
///<returns></returns>

public string SetNOHtmlChr(string Str)
{
Str = Str.Replace("'", "’");
Str = Str.Replace("<", "〈");
Str = Str.Replace(">", "〉");
return Str;

}
在什么情况下用那
jmh521 2010-09-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyazhe 的回复:]
1.第一个是读取一行,第二个是读取一个集合。
2.就是把分别三次,吧'<>分别替换为对应的全角字符。
[/Quote]

tong yi
koukoujiayi 2010-09-11
  • 打赏
  • 举报
回复
应该还有第三种!邦定诸如ObjectDataSouce或SqlDataSource等数据源!!
wuyq11 2010-09-11
  • 打赏
  • 举报
回复
都不应该这样使用,使用数据库操作类获取List<T>集合或数据集绑定到下拉框
DataReader独占连接,只读只进
DataSet支持断开式连接,支持增删改操作
sql中引号要替换为Replace("'","''");
替换为对应的全角字符
whb147 2010-09-11
  • 打赏
  • 举报
回复
第一种方法会一直占着连接
dalmeeme 2010-09-11
  • 打赏
  • 举报
回复
第一种是用数据阅读器DataReader,运行效率高,但由于是一个只读只进的数据流,所以其本身不能改写数据库,需配合ExecuteNonQuery()方法直接改写数据库。后一种是用数据集Dataset,其特点是可以离线对数据操控。
如果只对数据进行个别的增删改查,建议用第一种;如果需对数据进行较复杂的加工处理,建议用第二种。
兔子-顾问 2010-09-11
  • 打赏
  • 举报
回复
1.第一个是读取一行,第二个是读取一个集合。
2.就是把分别三次,吧'<>分别替换为对应的全角字符。

110,538

社区成员

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

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

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