先介绍几个常见问题,sqlserver提示Cannot find one or more components.Please reinstall the application 让重新安装,解决办法
regedit.exe,启动注册表工具
“HKEY_CURRENT_USER\Software\Microsoft\SQL Server Management Studio”
删除 xx.0_Config文件夹
需要注意删除之后需要重新安装一次sqlserver,修复安装即可
asp.net操作sqlserver数据库提示用户登录失败,多半是连接字符串出问题了,可能不全,比如没有密码
下面简单写一下asp.net api的控制器的登录注册验证
登录验证,用户名是否存在,密码是否正确
public DataTable GetLogin(string username, string password)
{
password = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(password, "MD5");//MD5加密
DataTable dt = null;
string sql = null;
SqlParameter[] cmdParms1 ={
new SqlParameter("@username",username),
new SqlParameter("@password",password)
};//这样比直接用传参更安全,因为查看sql语句时得到的会是@string而不是直接看到了具体的值
sql = "select * from g_user_info where u_name=@username and u_password=@password";
dt = SQLHelper.GetDataTable(sql, CommandType.Text, cmdParms1);
if (dt == null)
{
return TableTools.CreateTable("error", "没有操作数据库进行查询,返回值未实例化,为null!");
}
else if (dt.Rows.Count == 0)
{
SqlParameter[] cmdParms2 ={
new SqlParameter("@username",username),
};
sql = "select * from g_user_info where u_name=@username";
dt = SQLHelper.GetDataTable(sql, CommandType.Text, cmdParms2);
if (dt.Rows.Count == 0)
{
return TableTools.CreateTable("error", "该用户不存在!");
}
else
{
return TableTools.CreateTable("error", "密码错误!");
}
}
return dt;
}
注册验证,用户名是否已经存在,手机号是否已经被注册过
public String GetReg(string username, string password,String phone)
{
string sql = null;
DataTable dt = null;
SqlParameter[] cmdParms1 ={
new SqlParameter("@username",username),
};
sql = "select * from g_user_info where u_name=@username";
dt = SQLHelper.GetDataTable(sql, CommandType.Text, cmdParms1);
if (dt.Rows.Count != 0)
{
return "该用户已注册过!";
}
SqlParameter[] cmdParms2 ={
new SqlParameter("@phone",phone),
};
sql = "select * from g_user_info where u_phone=@phone";
dt = SQLHelper.GetDataTable(sql, CommandType.Text, cmdParms2);
if (dt.Rows.Count != 0)
{
return "手机号已经被使用注册过!";
}
password = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(password, "MD5");
String result = null;
String integral = null;
Random ran = new Random();
int RandKey = ran.Next(100000, 999999);
integral = RandKey.ToString();
SqlParameter[] cmdParms3 ={
new SqlParameter("@username",username),
new SqlParameter("@password",password),
new SqlParameter("@phone",phone),
new SqlParameter("@inviteCode",100),
new SqlParameter("@integral",integral)
};
sql = "insert into g_user_info(u_name,u_password,u_phone,u_invite_code,u_integral) values (@username,@password,@phone,@inviteCode,@integral)";
SQLHelper.ExecuteScalar(sql, CommandType.Text, cmdParms3);
return "注册成功";
}