【问题标题】:ASP.net form SQL Server update from inputbox来自输入框的 ASP.net 表单 SQL Server 更新
【发布时间】:2016-01-22 09:58:40
【问题描述】:

我正在尝试使用我网站上输入框中的文本更新我的 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();
    }
}

【问题讨论】:

  • 我从你的连接字符串中删除了IP地址,不要发布这样的信息。我把 localhost 代替了!
  • 谢谢!!我看过了>.>

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


【解决方案1】:

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

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.
}

【讨论】:

  • 我之所以选择这个答案,因为两者都是正确的,因为它为我提供了更多信息:)
  • 作为补充,我必须从 api.Value = APIinput; 更改我的 SQLParamaters;到 api.Value = APIinput.Text;
【解决方案2】:

您在connection.Open() 之后错过了cmd.ExecuteNonQuery()。这就是为什么不更新值的原因

【讨论】:

    猜你喜欢
    • 2018-01-17
    • 2021-03-06
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多