主要还是分成dataset 和datareader两种形式
dataset(数据集(包含多个dataTable))是一次性连接式而datareader是实时连接跟数据库实时交互
datareader(数据阅读器)只能够向前阅读(你也可以理解为向下一记录阅读)
datareader会比dataset快因为dataset是用adapter的fill函数填充的而fill函数执行的时候使用了datareader读出数据赋给dataset中。
如果你需要使用缓存则使用dataset,datareader不支持缓存(因为实时连接,除非将读出的数据赋给变量或者其他存储结构)。
讲到这里吧洗澡了
不管怎么样,都肯定要用到oledbCommand对吧。因为只有他能向数据库传达命令。
在程序中向oledbCommand下达命令有三种方式,其中两个就是你说的dataset和adapter;还有一种就是:ExecuteReader;
给你一个我用的例子:
dim conContent as new systemdataoledboledbconnection("provider=Microsoftjetoledb40;data source=bbsmdb;")conContentopen
using comContent as new systemdataoledboledbcommand("SELECT FROM contenttitle WHERE 编号='" & strNumber & "'",conContent)
with comContentExecuteReader
if hasrows then
read
' 这里是一大段的 *** 作
end if
end with
end using
这段程序,连接了一个数据库,然后从数据库中取出数据,然后进行 *** 作,这段程序完了之后,comContent这个oledbCommand变量就消失了,从而不会影响再次对数据库连接(conContent)的 *** 作。
如果你需要写数据,那直接把SQL语句改成update就好了。
虽然可以做到,但代码将变得很复杂,因为这样做要求从连接数据库到打开数据集,再到显示数据的每一步都能在重新连接网络后自动恢复,且不影响已显示和修改的数据。折中的方法是在窗体中设将数据保存到文件和从文件导入数据的功能,这样如果意外断网,可将数据保存到文件,然后关闭窗体(甚至退出程序)后,再重新打开窗体或运行程序时从文件中导入数据,再保存到数据库。
1、新建一个数据库,数据库名为Image,表名为image。并为表添加ID,tupian两个列。
2、新建一个项目(Photo),在工具箱中往窗体中拖入一个PictureBox控件,两个Button按钮,一个OpenFileDialog控件。并修改pictureBox1控件的属性BorderStyle为FixedSingle,SizeMode为StretchImage;修改两个button控件属性的Text值依次为”打开一张”“插入数据库”。
3、首先打开“数据“选择“添加新数据源”,然后(数据库)下一步,(数据集)下一步,选择”新建连接“,依次选择服务器名,服务器验证方式,选择”选择或输入一个数据库名。
4、选择”选择或输入一个数据库名,添加刚刚新建的数据库,然后点击“测试连接”,看看数据库连接是否成功。成功后点“确定”回到“数据源配置向导”页面,将“连接字符串复制下来。
5、添加两条using命名空间 using SystemIO; using SystemDataSqlClient;作用为读取二进制数据流,用于数据库的连接。
6、编辑Button按钮“打开一张”的Click事件。
7、编写Button按钮“插入数据库:的Click事件。
我不知道你的webserver是个什么东西,我暂时把他当做remoting或者webservice吧,在客户端调用webserver,webserver查询数据库,查询结果转换成XML,传回客户端,客户单端处理一下插入数据库就可以了吧,希望我说的对你有帮助
如果一切正常的话,数据集为空,哪么会出现空dbgrid
否则不会出现空dbgrid,除非没有邦定数据集
在表格中可以ctrl+ Ins 可以直接添加数据,前提数据集中没有不允许为空的记录,或在afterinsert中加入默认值的补充
以上就是关于请问下c# 存储数据的方式方法有那些!全部的内容,包括:请问下c# 存储数据的方式方法有那些!、vb.net中combobox选中的内容怎么存到数据库不用dataset和adapter。用的是、delphi的stringgrid保存数据到数据库的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)