如何在一个过程中打开两个表
在一个过程中要打开两个表,我现在是用如下方法
Dim Conn, conn1 As New SqlConnection
Dim Comd, comd1 As SqlCommand
Dim strsql As String
Dim obj As New jbfx.pub
Dim Dtrd, dtrd1 As SqlDataReader
Conn.ConnectionString = obj.Conn_str
Conn.Open()
Conn1.ConnectionString = obj.Conn_str
Conn1.Open()
strsql = "select * from bm where s_sjbm= '00000000 ' "
Comd = New SqlCommand(Trim(strsql), Conn)
Dtrd = Comd.ExecuteReader()
ListBox1.Items.Clear()
Do While Dtrd.Read
ListBox1.Items.Add(New ListItem(Dtrd( "s_bm "), Dtrd( "s_bmid ")))
Loop
strsql = "select * from zdjg where id= " & Request( "sjgid ")
comd1 = New SqlCommand(strsql, conn1)
dtrd1 = comd1.ExecuteReader()
TextBox1.Text = i
'TextBox2.Text = dtrd1( "i_yj ")
conn1.Close()
Conn.Close()
可是如果我让 'TextBox2.Text = dtrd1( "i_yj ")一执行就报错不知为什么.
另SqlConnection是否可以只做一个,我开始也是做一个SqlConnection,但执行dtrd1 = comd1.ExecuteReader()就报错,不知为什么.
[解决办法]
可是如果我让 'TextBox2.Text = dtrd1( "i_yj ")一执行就报错不知为什么.
================
1.
dtrd1 = comd1.ExecuteReader()
TextBox1.Text = i
'TextBox2.Text = dtrd1( "i_yj ")
》》》
// C# 语法, 主要是要先调用 SqlDataReader.Read()
dtrd1 = comd1.ExecuteReader();
if(dtrd1.Read()) { //
TextBox1.Text = i.ToString();
TextBox2.Text = dtrd1[ "i_yj "].ToString();
}
2.
另SqlConnection是否可以只做一个
============
可以,
但是, 有一个 Connection 只能同时给 一个 DataReader 使用,
即,你得先关了 Dtrd, 才能用 dtrd1