主题:高手来救命!
kskksk
[专家分:620] 发布于 2005-11-01 00:28:00
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个回复)
沙发
williambolice [专家分:470] 发布于 2005-11-01 03:21:00
我是使用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();
板凳
singleminded [专家分:490] 发布于 2005-11-01 08:55:00
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 楼
kskksk [专家分:620] 发布于 2005-11-01 13:28:00
谢谢楼楼上的,你们都能在自己的机子上运行吗??
好像2楼的和我的代码是一样的呀!
1楼的好像你写的是asp的代码吧
我要的是vb。net呀
4 楼
宝宝啊呜 [专家分:990] 发布于 2005-11-01 16:24:00
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 楼
williambolice [专家分:470] 发布于 2005-11-02 00:04:00
我写的不是asp,而是asp.net中使用c#语言,不是使用vb,我开发过很多的项目,象这种使用datareader读取记录是很平常的,我想跟你说的一点是,语言是相通的,未必要专学过那种才会懂得其中的意思,而是要一通百通,我的程序完全可以运行,因为是真正的项目在登陆页面的login.aspx中,你应该努力向无视语言界限的方向发展,即无招胜有招。
我来回复