今天在編程的時候,遇到了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
運行調試,發(fā)現還是出錯
仔細一看,名字沒錯啊,配置沒錯啊,發(fā)狂半小時
繼續(xù)搞
深入這個bll文件
首先找到dal層的鏈接數據庫方法,跳進去,之后,發(fā)現只能反編譯
于是反編譯查找這個鬼方法到底是怎么運行的
點擊跳進這個方法
最后他娘的發(fā)現原來還是名字錯了,一陣發(fā)狂,寫下了今天這個玩意
如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網友會為你解答?。?點擊進入論壇