C# RMACE,因为发送到服务器的数据较少。但是MSSQL也可以缓存临时查询的执行计划。但是,参数是必需的:)感谢您提供的描述性示例。:)@mikeng实际上,存储过程只是为了使用而提高性能,这是一个神话。它可能会提高性能,因为发送到服务器的数据较少。但是MS

C# RMACE,因为发送到服务器的数据较少。但是MSSQL也可以缓存临时查询的执行计划。但是,参数是必需的:)感谢您提供的描述性示例。:)@mikeng实际上,存储过程只是为了使用而提高性能,这是一个神话。它可能会提高性能,因为发送到服务器的数据较少。但是MS,c#,asp.net,sql,C#,Asp.net,Sql,RMACE,因为发送到服务器的数据较少。但是MSSQL也可以缓存临时查询的执行计划。但是,参数是必需的:)感谢您提供的描述性示例。:)@mikeng实际上,存储过程只是为了使用而提高性能,这是一个神话。它可能会提高性能,因为发送到服务器的数据较少。但是MSSQL也可以缓存临时查询的执行计划。但是,参数是必需的:) using System; using System.Collections.Generic; using System.Linq; using System.Web; using S


RMACE,因为发送到服务器的数据较少。但是MSSQL也可以缓存临时查询的执行计划。但是,参数是必需的:)感谢您提供的描述性示例。:)@mikeng实际上,存储过程只是为了使用而提高性能,这是一个神话。它可能会提高性能,因为发送到服务器的数据较少。但是MSSQL也可以缓存临时查询的执行计划。但是,参数是必需的:)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

public partial class LogIn : System.Web.UI.Page
{
    SqlConnection con = new SqlConnection();
    SqlCommand cmd = new SqlCommand();

    protected void Page_Load(object sender, EventArgs e)
    {
        con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users        \Sony\Documents\Library\App_Data\Library.mdf;Integrated Security=True;User     Instance=True";
        cmd.Connection=con;
        con.Open();



    }
protected void  txt_user_TextChanged(object sender, EventArgs e)
{

}
protected void  txt_pass_TextChanged(object sender, EventArgs e)
{

}
protected void  btn_log_Click(object sender, EventArgs e)
{
    cmd.CommandText="select count(*) from user where Username='"+txt_user.Text+"' and     Password='"+txt_pass.Text+"'";
        int count =Convert.ToInt16(cmd.ExecuteScalar());
        if (count==1)
        {
            Response.Redirect("Home.aspx");
        }
        else
        {
            Label1.Text="Invalid Username or Password. Please try again..";
        }
}
select count(*) from [user] ....
cmd.CommandText="select count(*) from [user] where Username=@uname " + 
                "and Password=@upass";
cmd.Parameters.AddWithValue("@uname", txt_user.Text)
cmd.Parameters.AddWithValue("@upass", txt_pass.Text);
int count =Convert.ToInt16(cmd.ExecuteScalar());
......
protected void  btn_log_Click(object sender, EventArgs e)
{

   using(SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=" +
                                 @"C:\Users\Sony\Documents\Library\App_Data\Library.mdf;" + 
                                 @"Integrated Security=True;User Instance=True")
    {
        con.Open();
        using(SqlCommand cmd = new SqlCommand("select count(*) from [user] where "+ 
                                   "Username=@uname and Password=@upass", con)
        {
            cmd.Parameters.AddWithValue("@uname", txt_user.Text)
            cmd.Parameters.AddWithValue("@upass", txt_pass.Text);
            int count =Convert.ToInt16(cmd.ExecuteScalar());
            ......
        }
    }
}
select count(*) from [user] where ...
using(SqlCommand cmd = new SqlCommand("dbo.IsValidLogin", con)
{
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("@username", txt_user.Text)
    cmd.Parameters.AddWithValue("@password", txt_pass.Text);
    var isValidLogin =Convert.ToBool(cmd.ExecuteScalar());
    ...
}
CREATE PROC dbo.IsValidLogin
@username nvarchar(50),
@password nvarchar(50)
AS
BEGIN
  SELECT count(1) 
  FROM [user] 
  WHERE Username=@username
  AND Password=@password
END;