奇怪啊!请各位都进来看看这是什么原因?
aclan 2009-04-27 11:23:29 现有两个工程文件:bookky1和bookky2, 在bookky2里"按读者借阅情况检索"模块中连接到bookky2里的数据库时,运行一个外键查询语句,要实现将查询结果显示在datagrid中,执行了语句却没有结果显示出来,但是在这句上面的查询读者名的查询语句却可以将结果显示在相应的textbox中,而这两个查询语句均是连接到bookky2里的数据库。若将数据库换成连接到bookky1里的数据库,外键查询语句却能将结果显示在datagrid中,请问这是为什么?代码:
'用下面这个连接字符串datagrid中没结果
Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=d:\bookky2\book\Database1.mdf;Integrated Security=True;User Instance=True")
'用下面这个连接字符串datagrid中有结果
'Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=d:\bookky\book\Database1.mdf;Integrated Security=True;User Instance=True")
con.Open()
Dim cmd As New SqlCommand("select rno from readerinfo where [rno]='" & TextBox1.Text.Trim & "'", con)
Dim reader As SqlDataReader
reader = cmd.ExecuteReader()
If reader.Read Then
reader.Close()
Dim cmd1 As New SqlCommand("select rname from readerinfo where rno='" & Me.TextBox1.Text.Trim & "'", con)
Me.TextBox2.Text = cmd1.ExecuteScalar().ToString()
Dim myda As New SqlDataAdapter("SELECT bookinfo.bno, bookinfo.bname, lendinfo.lenddate,lendinfo.returndate FROM bookinfo INNER JOIN lendinfo ON bookinfo.bno = lendinfo.bno INNER JOIN readerinfo ON lendinfo.rno = readerinfo.rno where readerinfo.rno='" & TextBox1.Text & "'", con)
Dim myds As New DataSet
' 当把bookinfo改成booklend或readerinfo都可以
myda.Fill(myds, "bookinfo")
Me.DataGrid1.DataSource = myds
Me.DataGrid1.DataMember = "bookinfo"
Else
MsgBox("没有这个读者的记录,请重新输入读者号!")
End If
con.Close()
注:这两个数据库完全一样,且数据库的路径没有错误。请高手给指导一下,多谢!!