ASP.net从输入框表单SQL Server更新

时间:2016-01-22 09:58:41

标签: c# asp.net sql-server webforms

我尝试使用我网站上输入框中的文本更新SQL Server数据库中的表格;

我的表格为MemberSite.dbo.Users,此表格中的列为:

ID (Auto incrementing) UserName, Password, ApiKey, VeriF

它没有更新我的SQL Server表。

我想要这样做:获取输入文本并将其放在我的SQL Server表中,对照登录的用户。

以下是一些代码web.config

<add name="WRITER" 
     connectionString="Data Source=localhost;Initial Catalog=MembershipSite;User ID=test;Password=test!" 
     providerName="System.Data.SqlClient" />

后端按钮点击;

protected void Save_Click(object sender, EventArgs e)
{
    SqlConnection conn = null;

    try
    {
        string sql = "UPDATE dbo.Users SET ApiKey = @API, VeriF = @verif WHERE UserName = @username";

        conn = new SqlConnection(ConfigurationManager.ConnectionStrings["WRITER"].ConnectionString);

        SqlCommand cmd = new SqlCommand(sql, conn);

        SqlParameter api = new SqlParameter();
        api.ParameterName = "@API";
        api.Value = APIinput;
        cmd.Parameters.Add(api);

        SqlParameter verif = new SqlParameter();
        verif.ParameterName = "@verif";
        verif.Value = Veri;
        cmd.Parameters.Add(verif);

        SqlParameter UserN = new SqlParameter();
        UserN.ParameterName = "@username";
        UserN.Value = User.Identity.Name;
        cmd.Parameters.Add(UserN);

        conn.Open();
    }
    finally
    {
        if (conn !=null)
            conn.Close();
    }
}

2 个答案:

答案 0 :(得分:2)

因为从不执行您的命令。只需添加:

cmd.ExecuteNonQuery();
打开连接后

还可以使用using statement来处理您的连接并自动命令 ,而不是手动调用CloseDispose方法。等;

using(var conn = new SqlConnection(conString))
using(var cmd = conn.CreateCommand())
{
   // Set your CommandText
   // Add your parameters
   // Open your connection
   // Execute your command.
}

答案 1 :(得分:1)

cmd.ExecuteNonQuery()之后您错过了connection.Open()。这就是价值未更新的原因