具体的前期准备请看:
http://www.cnblogs.com/user34j/archive/2007/03/11/670954.html
写的很详细,我就不多说了,就是最后那个什么详细连接的连不上.难道是真的连不上吗?
于是我做了下面的测试.
①VS2005的Web.Config有了connectionString这个新节点,在新节点加两个子节点.name随便,providerName不变(连SQL2005的Provider),connectionString...咳咳,参见上面的链接.
(Web.Config是从哪里来的?新建一个Website,F5运行,出现一个pop-up Window,点确定,把空页面关掉.系统就会自动给你的项目生成一个Web.Config文件)
<connectionStrings>
<add name="AdventureWorks Connection"
providerName="System.Data.SqlClient"
connectionString="server=.;database=AdventureWorks;uid=AX;pwd=Ax" />
<add name="ConnStr1"
connectionString="LocalSqlServer: data source=127.0.0.1;Integrated Security=SSPI;Initial Catalog=aspnetdb"
providerName="System.Data.SqlClient" />
</connectionStrings>
②现在我们怎么使用这个节点上的连接呢?网上没搜到,查了半天MSDN才摸索出来,献给大家了!
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// Create the connection string name.
//找的就是这句话,s的值为:server=.;database=AdventureWorks;uid=AX;pwd=Ax
string s = System.Configuration.ConfigurationManager.ConnectionStrings["AdventureWorks Connection"].ToString();
//下面测试是否能够操作数据库
SqlConnection con = new SqlConnection(s);
SqlCommand cmd = new SqlCommand("select count(*) from Production.product",con);
con.Open();
string ss=cmd.ExecuteScalar().ToString();
con.Close();
Response.Write(ss);
}
}
【注】:SQL2005的schema把俺给坑了一把,刚开始查询语句没有带schema,【select count(*) from product】结果出现异常.后发现SQL2005的schema特性很有意思.可以与role配合来设定role对某数据库中表的访问权限.
系统默认的schema为dbo,如果你不改默认的schema,在就必须在非dbo的schema表上加上schema,即schema+表名=确定一个表.(一个数据库可以有两个相同的表,但它们的schema不同)如果你把默认的schema改为Production,则【select count(*) from product】语句会执行成功!(No Recommend)
博客园 → 斧头帮少帮主