回 帖 发 新 帖 刷新版面

主题:高手来救命!

Dim strconn As String
        strconn = "Provider=SQLOLEDB;Data source=(local); Initial catalog=Northwind;  Integrated security=SSPI"
        Dim cn As New OleDbConnection(strconn)
        cn.Open()

        Dim strSQL As String
        strSQL = "SELECT CustomerID,CompanyName FR0M Customers "
        Dim cmd As New OleDbCommand(strSQL, cn)
        Dim rdr As OleDbDataReader = cmd.ExecuteReader()
        While rdr.Read()
            TextBox1.Text = rdr("CustomerID")
            TextBox2.Text = rdr("CompanyName")
        End While
        rdr.Close()


请问为什么运行到这里就不能运行了??Dim rdr As OleDbDataReader = cmd.ExecuteReader()

谢谢!!

回复列表 (共5个回复)

沙发

我是使用c#的,不过看你的程序跟c#也差不多,不应该是rdr.close吧。应该cn.open后还要把连接关闭的cn.close,rdr只是dataadater,还有你的循环是这样写的吗,我觉得应该改成:
Dim strconn As String
        strconn = "Provider=SQLOLEDB;Data source=(local); Initial catalog=Northwind;  Integrated security=SSPI"
        Dim cn As New OleDbConnection(strconn)
        cn.Open()

        Dim strSQL As String
        strSQL = "SELECT CustomerID,CompanyName FR0M Customers "
        Dim cmd As New OleDbCommand(strSQL, cn)
        Dim rdr As OleDbDataReader = cmd.ExecuteReader()
        While rdr.Read()
            TextBox1.Text = rdr("CustomerID")
            TextBox2.Text = rdr("CompanyName")
        End While
      cn.Close()

看看我写的程序:

            string strconn=ConfigurationSettings.AppSettings["dsn"];
            SqlConnection cn=new SqlConnection(strconn);
            cn.Open();
            string strsql="select * from NKusers where uid='"+TextBox1.Text.Trim()+"' and pwd='"+TextBox2.Text.Trim()+"'";
            SqlCommand cm=new SqlCommand(strsql,cn);
            SqlDataReader dr=cm.ExecuteReader();
            if(dr.Read())
            {
                Session["uid"]=dr["uid"];
                Session["role"]=dr["role"].ToString().Trim();
                            if(Session["role"].ToString().Trim()=="0")    
                    Response.Redirect("IndividualCount.aspx");
                else if (Session["role"].ToString().Trim()=="1")
                    Response.Redirect("Individual.aspx");
                
                
            }
            else
            {
                Response.Write("<script languge='javascript'>alert('登录失败,请返回!')</script>");
            
                Label1.Text="用户名或密码有误,请重新输入";
                
            }
            cn.Close();


板凳

Dim strconn As String
        strconn = "Provider=SQLOLEDB;Data source=(local); Initial catalog=Northwind;  Integrated security=SSPI"
        Dim cn As New OleDbConnection(strconn)
        cn.Open()

        Dim strSQL As String
        strSQL = "SELECT CustomerID,CompanyName FR0M Customers "

        Dim commd As New Data.OleDb.OleDbCommand

        commd = cn.CreateCommand()

       commd.CommandText = strSQL

        Dim rdr As OleDbDataReader = commd .ExecuteReader()
        While rdr.Read()
            TextBox1.Text = rdr("CustomerID")
            TextBox2.Text = rdr("CompanyName")
        End While
        rdr.Close()
修改成这样试试

3 楼

谢谢楼楼上的,你们都能在自己的机子上运行吗??
好像2楼的和我的代码是一样的呀!
1楼的好像你写的是asp的代码吧
我要的是vb。net呀

4 楼

Dim strconn As String
        strconn = "server=localhost; database=Northwind;  Integrated security=SSPI"
        Dim cn As New SqlConnection(strconn)
        cn.Open()
        Dim strSQL As String
        strSQL = "SELECT CustomerID,CompanyName from customers"
        Dim cmd As New SqlCommand(strSQL, cn)
        Dim rdr As SqlDataReader = cmd.ExecuteReader()
        While rdr.Read()
            TextBox1.Text = rdr("CustomerID")
            TextBox2.Text = rdr("CompanyName")
        End While
        rdr.Close()
        cn.close()

调试过了,没有问题的。textbox中显示的是你所查询出来的最后一条记录。

5 楼

我写的不是asp,而是asp.net中使用c#语言,不是使用vb,我开发过很多的项目,象这种使用datareader读取记录是很平常的,我想跟你说的一点是,语言是相通的,未必要专学过那种才会懂得其中的意思,而是要一通百通,我的程序完全可以运行,因为是真正的项目在登陆页面的login.aspx中,你应该努力向无视语言界限的方向发展,即无招胜有招。

我来回复

您尚未登录,请登录后再回复。点此登录或注册