今天在编程的时候,遇到了connectionstring尚未初始化的问题,在网上找了很多资料也没有把问题解决,虽然这个问题比较常见.但是大致知道了多数说是配置的问题,其根本原因是没有获得KEY.我的配置中是
<add name="S601ConnectionString" connectionString="Data Source=localhost;Initial Catalog=S601;User ID=sa;Password=123456" providerName="System.Data.SqlClient" />
,在其他网页上是没有错误的,有很多说<add>中应该为KEY="",value=""我改完之后还是不好用.于是我就想了干吗要那么费劲的让connection自己去找连接字符串,自己给它写上不就可以了,于是我在.cs页中直接把原来的
SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["S601ConnectionString"]);
SqlCommand cmd = new SqlCommand("select count(*) from Role where sAdmin='" +this.type.Text+ "'and sPwd='" + TextBox1.Text + "'", conn);
cmd.Connection.Open();
int i = (int)cmd.ExecuteScalar();
cmd.Connection.Close();
if(i>0)
{
Response.Write(bc.MessageBox("location.href='../back-stage management.aspx'"));
Session["username"]=this.type.Text.ToString();
}
else
{
Response.Write(bc.MessageBox("你选择的角色有错或者密码不对!"));
}
改为
SqlConnection conn = new SqlConnection("Data Source=localhost;Database=S601;Uid=sa;Pwd=123456");
SqlCommand cmd = new SqlCommand("select count(*) from Role where sAdmin='" +this.type.Text.ToString()+ "'and sPwd='" + TextBox1.Text + "'", conn);
cmd.Connection.Open();
int i = (int)cmd.ExecuteScalar();
cmd.Connection.Close();
if(i>0)
{ //登录成功
Response.Write("<mce:script language=javascript><!--
location.href='back-stage management.aspx'
// --></mce:script>");
}
else
{
Response.Write(bc.MessageBox("你选择的角色有错或者密码不对!"));
}
这样就OK了
问题前因:使用动软代码生成的三成模板然后复制到相应的类库
动软生成的 sql帮助类 推荐的是DBsqlhelp
期间引用了:BLl层:Maticsoft.Common.dll
DAl层:Maticsoft.DBUtility.dll
解决问题思路:百度全是配置文件错误:事实也是如此,但是却找不到到底哪里错了,
于是使用 IL Spy(反编译) DBUtility 所引用的sql帮助类
反编译之后
首先就找到了这个帮助类,一看原来web.config的配置文件使用的是 Appsettings这种链接数据库的方式于是
于是注销上面的 connectionstrigs 使用了 aoosettings
运行调试,发现还是出错
仔细一看,名字没错啊,配置没错啊,发狂半小时
继续搞
深入这个bll文件
首先找到dal层的链接数据库方法,跳进去,之后,发现只能反编译
于是反编译查找这个鬼方法到底是怎么运行的
点击跳进这个方法
最后他娘的发现原来还是名字错了,一阵发狂,写下了今天这个玩意
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛