我使用C#在asp.net中创建登录页面。但是当我检查用户名和密码时,我收到以下错误:转换varchar值时转换失败'密码'到数据类型int
如何解决这个问题?
以下是我的代码:
public partial class Default2 : System.Web.UI.Page
{
SqlConnection cn = new SqlConnection();
protected void Page_Load(object sender, EventArgs e)
{
cn.ConnectionString=@"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\Users\user\documents\visual studio 2012\WebSites\WebSite4\App_Data\Database.mdf;Integrated Security=True";
cn.Open();
}
protected void Button1_Click(object sender, EventArgs e)
{
SqlCommand cmmd = new SqlCommand("select * from jig where UserName=@username and PassWord=@password",cn);
cmmd.Connection = cn;
cmmd.Parameters.AddWithValue("@username", TextBox1.Text);
cmmd.Parameters.AddWithValue("@password", TextBox2.TextMode);
SqlDataAdapter daa = new SqlDataAdapter(cmmd);
DataTable dtt = new DataTable();
daa.Fill(dtt);
if (dtt.Rows.Count > 0)
{
Response.Redirect("default.aspx");
}
else
{
ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('Invalid Id/Password')</script>");
}
}
}
答案 0 :(得分:1)
尝试替换
PassWord=@password
与
cast(PassWord as varchar(max))=cast(@password as varchar(max))
如果您知道密码最大长度是多少,请使用该密码而不是varchar(max)。