- 慢慢学习ASP.net开发,其中数据库使用了微软的sqlhelper 很方便的省去了许多非必要操作,同时在这里也做个笔记,防止自己忘记,下面直接贴上一个列子,后面将考虑进行改进。
//获取从前台传递过来的用户名
string userName = HttpContext.Current.Request.Form["userName"].ToString();
//获取从前台传递过来的密码
string pwd = HttpContext.Current.Request.Form["pwd"].ToString();
//获取从前台传递过来的用户类型
string UType = HttpContext.Current.Request.Form["UType"].ToString(); //用户类型
//字符串用来存取如何操作数据库的文本
string strsql = String.Format("select *FROM myuser where User_Name = @User_Name and Pwd=@Pwd");
//数据库的链接必须要
string str = "server=localhost;database=fox;uid=sa;pwd=SQLsqlgetup";
//string sql = "select count(1) from student where studentName=@name and loginpwd=@pwd";
//sql注入处理2.调用SqlParameter[]数组对数据进行过滤
SqlParameter[] sqlPara = new SqlParameter[]
{
//声明这样的参数为什么类型
new SqlParameter("@User_Name", SqlDbType.NVarChar),
new SqlParameter("@Pwd", SqlDbType.NChar),
};
//对参数赋值
sqlPara[0].Value = userName;
sqlPara[1].Value = pwd;
//链接字符串 操作字符串 参数有了 执行查询操作
SqlDataReader reader = SqlHelper.ExecuteReader(str, CommandType.Text,strsql, sqlPara);
try
{
//int count = Convert.ToInt32(cmd.ExecuteScalar());
if (reader.Read())
{
context.Response.Write("{\"status\":\"登陆成功\"}");
return;
}
else
{
context.Response.Write("{\"status\":\"用户名密码不正确\"}");
return;
}
}
- 然后问题就来了,我们这里有一句链接数据库的字符串,如果我们后面数据库发生了变化,那么我们得重新编译所有的字符串。有没有能只改变一次的写法呢。
- 首先我们来到 web.config 写入如下
<connectionStrings>
<add name="SqlServerHelper" connectionString="server=localhost;uid=sa;pwd=pws;database=yourbase"/>
</connectionStrings>
- 包含在 < configuration > 里面 然后我们通过如下的sqlconnection来连接sql的替代字符,如果是其他数据库使用其他的connection,自行百度。
SqlConnection strcon = new SqlConnection(ConfigurationManager.ConnectionStrings["SqlServerHelper"].ToString());
然后我们就能使用 strcon 代替链接数据库的字符串功能了。
- 更新。其实还有一种写法
private static string sqlConString = ConfigurationManager.ConnectionStrings["SqlServerHelper"].ConnectionString;