asp.net网站无法连接到数据库
来源:百度知道 编辑:UC知道 时间:2024/06/10 12:13:40
用asp.net做的网站,网站、vs2005和iis在本机win2000上,sqlserver2000在另一台win2000server上,连接字符串就不用说了,数据库使用的是windows验证方式,在本机vs2005中运行的时候,一切正常,但是如果在iis中运行,只要是涉及到数据库的部分,就一定会出错,就是上面的错误信息,错误所在位置就是sqlconnention对象的opener()方法,connection.open(),好几个网站都是这样。
这几台电脑之间的连接没有任何问题,客户端使用查询分析器也没有问题,在vs2005中运行更是没有任何问题,就是在iis中不行,我感觉应该是数据库用户和asp.net权限上的问题,但不知道怎么解决,请高手指点
如果iis和server2000数据库都在一台机器上的话,只要把aspnet用户添加到server2000中并设置访问数据库的权限就可以解决,但是如果iis和数据库分开,数据库所在的机器根本就没有aspnet这个用户,不知道应该如何添加。
有数据库的机子,asp.net服务没有开吧,把服务开了,再在IIS中设置一下就可以了
1、导入命名空间
using System.Data.SqlClient; //连接SQLServer 数据库专用
2、创建连接
SqlConnection lo_conn = New SqlConnection("Server=服务器名字或IP;Database=数据库名字;uid=用户名;pwd=密码");
3、打开连接,第2步并没有真正连接数据库
lo_conn.Open(); //真正与数据库连接
4、向数据库发送SQL命令要使用SqlCommand:
SqlCommand lo_cmd = new SqlCommand(); //创建命令对象
lo_cmd.CommandText = "这里是SQL语句"; //写SQL语句
lo_cmd.Connection = lo_con; //指定连接对象,即上面创建的
5、处理SQL命令或返回结果集
lo_cmd.ExecuteNonQuery(); //这个仅仅执行SQL命令,不返回结果集,实用于建表、批量更新等不需要返回结果的操作。
SqlDataReader lo_reader = lo_cmd.ExecuteReader();//返回结果集
6、以数据集的方式反回结果集
SqlDataAdapter dbAdapter = new SqlDataAdapter(lo_cmd); //注意与上面的区分开
DataSet ds = new DataSet(); //创建数据集对象
dbAdapter.Fill(ds); //用返回的结果集填充数据集,这个数据集可以被能操作数据的控件DataBind
7、关闭连接
lo_conn.Close();
应该是IIS用户权限的问题,你要在IIS里添加ASPNET这个用户,这样IIS才能正常的运行asp.net的程序,如果还是不行的话,