请教各位大侠下面这段代码为什么总是提示dataset为空. 数据库连接是成功的,但是dataset总是为空.
答案:2 悬赏:20 手机版
解决时间 2021-01-03 19:33
- 提问者网友:温旧梦泪无声
- 2021-01-03 07:50
Driver={SQL erver};Server=XXXX;Database=XXXX;Uid=sa, con)
'.Data.DataSet
Public Function Datalog_Connect() As Boolean
Try
constr = "
con = New OdbcConnection(constr)
con;Engdataset.Clear()
EngDataAdapter.Fill(Engdataset, ".Open()
constr = "select * from customerall"all")
'Return True
MsgBox("connected"
EngDataAdapter.SelectCommand = New OdbcCommand(constrPartial Class _Default
Inherits System.Web.UI;)
Catch ex As Exception
'Return False
MsgBox(ex.Message.ToString)
End Try
Return True
End Function
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.Tables.Item(".Page
Dim constr As String
'Public conn As New MySqlConnection
Public connn As New SqlConnection
Public con As New OdbcConnection
Public EngDataAdapter As New OdbcDataAdapter
Public Engdataset As System;customerall")
'Engdataset.EventArgs) Handles Me;Pwd=sa"
最佳答案
- 五星知识达人网友:怀裏藏嬌
- 2021-01-03 08:06
那么现在我要想把SQL里的数据拿出来存放在DataSet怎么办呢,这时就要用SqlDataAdapter去处理,一个DataSet可以包含多个DataTable,你可以将DataSet看成是一个excel表格,我们知道一个excel表格里可以有很多sheet,要知道...他们是一个道理的
EndsWith
判断一个字符串是不是以某个特定的字符串结束的, if(sel.EndsWith(",至于它里面是怎么处理的,你不用深究, sheet1,它的作用是将数据在不同的存储设备之间相互转换(什么是存储设备?就是存储数据的集合,DataSet,DataTable都是存储设备): sheet0, sheet2,它把SQL里的数据拿出来变成DataSet认可的格式后存放进去,数据在SQL Server里存放的格式和在DataSet里的存储格式是不一样的SqlDataAdapter
SqlDataAdapter是数据适配器,知道怎么用它就可以了
DataSet
上面已经说了是存放数据的集合
EndsWith
判断一个字符串是不是以某个特定的字符串结束的, if(sel.EndsWith(",至于它里面是怎么处理的,你不用深究, sheet1,它的作用是将数据在不同的存储设备之间相互转换(什么是存储设备?就是存储数据的集合,DataSet,DataTable都是存储设备): sheet0, sheet2,它把SQL里的数据拿出来变成DataSet认可的格式后存放进去,数据在SQL Server里存放的格式和在DataSet里的存储格式是不一样的SqlDataAdapter
SqlDataAdapter是数据适配器,知道怎么用它就可以了
DataSet
上面已经说了是存放数据的集合
全部回答
- 1楼网友:慢性怪人
- 2021-01-03 08:54
你的代码更新不了数据
因为在你要提交更新前数据集是即时查询数据库的
没有获取当前修改的数据
思路是这样的:
先查询,绑定数据集(要更新的数据集需要设置为当前模块的变量)
等你在datagridview修改数据后继续进行下面的操作
然后是再在其他的事件中提交修改
比如:
你在某个窗体内定义
sqlconnection conn;
dataset ds = new dataset();
sqlcommand cmd ;
sqldataadapter sqldataadapter1;
在fromload中添加如下代码(没有测试,复制了你的代码)
string sql = "select top 20 * from syskf order by id desc";
sqlconnection conn = new sqlconnection(game.usersqlstr());
sqlcommand cmd = new sqlcommand(sql, conn);
sqldataadapter sqldataadapter1 = new sqldataadapter();
sqldataadapter1.selectcommand = cmd;
conn.open();
sqldataadapter1.fill(ds, "gamescore");
datagridview1.datasource = ds;
datagridview1.datamember = "gamescore";
conn.close();
conn.dispose();
然后放一个按钮,在click事件中处理:
if(conn.state.equals(connectionstate.closed))
conn.open();
sqlcommandbuilder objbuilder = new sqlcommandbuilder(sqldataadapter1);
sqldataadapter1.updatecommand = objbuilder.getupdatecommand();
sqldataadapter1.update(ds, "gamescore");
ds.acceptchanges();
conn.close(); conn.dispose();
datagridview1.datasource = ds;
datagridview1.datamember = "gamescore";
conn.close();
conn.dispose();
大概思路就是这样的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯