给位前辈帮帮忙!急!数据库结果集导入画面textbox问题!

YUKI1985 2008-03-10 07:40:42
VB2005+SQLSERVER
现在FROM上有一个TEXTBOX控件和一个PANEL控件和一个更新BUTTON,一个检索BUTTON,PANEL控件中置放了横5,竖20个TEXTBOX,看上去像是一张表!(我也不明白设计者为什么要这么做,而不用DATAGRID?)
数据库中有5个子段!在检索数据时,通过FROM上最开始那个TEXTBOX控件(与表中主键相对)来检索数据,检索出来的数据依次显示到PANEL控件中TEXTBOX中,每条记录对应一行TEXTBOX(就像表一样)。
现在想向各位前辈求教:
1,往数据库中传入数据时(假如现在有10条)怎么才能把每个textbox中的值都能顺利更新呢?
SQL_commond.Parameters("@编号").Value = 编号.Text
SQL_commond.Parameters("@员工").Value = 员工
SQL_commond.Parameters("@姓名").Value = 姓名
SQL_commond.Parameters("@年龄").Value = 年龄
SQL_commond.Parameters("@工资").Value = 工资
上面红色的字段即为panel中的textbox,我把他们定义成数组,可是却无法把textbox中的值传入数据库!
2,从数据库中导出数据时,
员工.Text = SQL_SYACDB_READER("员工")
姓名.Text = SQL_SYACDB_READER("姓名")
年龄.Text = SQL_SYACDB_READER("年龄")
工资.Text = SQL_SYACDB_READER("工资")
又该如何写好呢?红色部分我都不太理解,怎么做才能一次性把20个员工等等的全部更新或显示呢?
还请各位前辈指导!先谢谢啦!
如果哪位前辈有例子,不介意的话,能给个么?谢谢!
...全文
134 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
YUKI1985 2008-03-11
  • 打赏
  • 举报
回复
前辈!不好意思,刚刚休息。
呵呵,我先整理一下代码,然后尝试。
再次谢谢前辈的指导。
herol 2008-03-11
  • 打赏
  • 举报
回复
我基本不用DataReader,都用DataSet,我觉得DataSet要比DataReader好用,现在的机器也不用考虑DataSet多占的那么一点内存

DataReader是开着数据库不断的读,如果不想改用DataSet的话,可以试试下面这样循环
Dim i AS Integer=1
While SQL_SYACDB_READER.Read()
Dim strCode AS String = "Code" & i
Dim myTextBox As TextBox = CType(Me.Controls.Item(strCode), TextBox)
myTextBox.Text = SQL_SYACDB_READER("列名")
i = i+1
End While
YUKI1985 2008-03-11
  • 打赏
  • 举报
回复
定义成SqlClient.SqlDataReader,具体该叫什么我也叫不明白?呵呵额,前辈知道,我才学不久,而且是从日文开始,中文就更叫不明白了。(见笑了!)
看之前的例子,都是这样往画面上的`TEXTBOX传值的!
herol 2008-03-11
  • 打赏
  • 举报
回复
SQL_SYACDB_READER 这是什么东西?
YUKI1985 2008-03-11
  • 打赏
  • 举报
回复
上次是在FROM的Validating事件中的CHECK,本来想用个简洁写的写法,可是总是有问题,条件总是无法完全生效,改了一天半,给我气的,最后用最原始的方法,一个个的COPY了。呵呵,不过前辈的思想还是学到了。
For i = 0 To 50
Dim strCode AS String = "Code" & i
Dim myTextBox As TextBox = CType(Me.Controls.Item(strCode), TextBox)
myTextBox.Text = DataTable1.Rows(i-1).Item("列名")
Next
前辈,上边红色部分不太理解,我现在的结果集SQL_SYACDB_READER("列名")啊?得不到ROWS啊?

herol 2008-03-11
  • 打赏
  • 举报
回复
For i = 0 To 50
Dim strCode AS String = "Code" & i
Dim myTextBox As TextBox = CType(Me.Controls.Item(strCode), TextBox)
myTextBox.Text
Next

上次说的这样循环控件不行?
如果这样可以取到控件的话

For i = 0 To 50
Dim strCode AS String = "Code" & i
Dim myTextBox As TextBox = CType(Me.Controls.Item(strCode), TextBox)
myTextBox.Text = DataTable1.Rows(i-1).Item("列名")
Next

这样不就循环给每个控件都赋值了吗

翻页也可以做,就是用户看到的翻页都是假象,实际的操作是,清空 Form里的所有TextBox,然后把下页的数据再绑上。
YUKI1985 2008-03-11
  • 打赏
  • 举报
回复
前辈,现在TEXTBOX的命名倒是有规律,关键是怎么做才可以使循环的TextBox和循环的查询出来的结果集对应上呢?因为两个同时循环啊?
再问一下前辈:这样的表可以设置翻页,因为数据库中的记录有很多。
我总觉得这个画面没办法完成?又或者完成起来特别特别的麻烦?
尤其是更新?
herol 2008-03-11
  • 打赏
  • 举报
回复
一般VB6的用TextBox拼表格,.NET几乎不用了,除非特殊情况。
TextBox应该不能像DataGrid一样整体更新吧
我觉得可以把TextBox命名改成有规律的,像TextBox1,TextBox2,TextBox3...
然后循环TextBox和查询出来的结果集,一个一个的附值
YUKI1985 2008-03-11
  • 打赏
  • 举报
回复
前辈们啊!帮帮忙吧?
wanabe 2008-03-10
  • 打赏
  • 举报
回复
up

16,552

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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