【问题标题】:Inserting selected data using checkbox from gridview使用gridview中的复选框插入选定的数据
【发布时间】:2012-01-28 04:42:38
【问题描述】:

当我在 gridview 中使用复选框选择时,我希望它将数据插入数据库,但它没有添加它。我的代码如下,请看我哪里出错了。

public partial class HomeTeamCheckList : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        LiveGameReporting Window
        SubmitLineUp.Attributes.Add("onclick", "PassValues();");

        SubmitLineUp.Text = "Submit " + Session["HomeTeam"] + "'s Line Up";
    }

    protected void SubmitLineUp_Click(object sender, EventArgs e)
    {
        String GameID = string.Empty;
        String Name = string.Empty;
        String Number = string.Empty;

        int GKGVCount = GoalKeeperGridView.Rows.Count;


        foreach (GridViewRow gkrow in GoalKeeperGridView.Rows)
        {
            GameID = (String)Session["GameID"];
            Number = gkrow.Cells[0].Text;
            Name = gkrow.Cells[1].Text;

             SqlConnection connection = new SqlConnection(("Data Source=ROBEL-HP;Initial Catalog=RocoSportsDB;Integrated Security=True"));

            {
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = connection;
                cmd.CommandText = @"INSERT INTO HTLineUp (GameID, HomeTeamLineUpNo, HomeTeamLineUpName) VALUES (@GameID,@Number,@Name)";

                cmd.Parameters.AddWithValue("@GameID", GameID);
                cmd.Parameters.AddWithValue("@Number", Number);
                cmd.Parameters.AddWithValue("@Name", Name);

                cmd.ExecuteNonQuery();
            }
        }
    }
}

【问题讨论】:

  • 你需要设置一个断点,看看到底执行了什么。这很可能不是您想要的。
  • 其实我搞定了谢谢
  • @jadarnel27 是的,它是 cmd.ExecuteNonQuery();导致问题谢谢

标签: c# asp.net gridview checkbox sql-server-2008-r2


【解决方案1】:

两个想法:

  • 使用 try-catch 查看是否遇到任何 SQL 错误。
  • 检查cmd.ExecuteNonQuery(); 的返回值以查看是否有任何行实际受到影响/插入。

像这样:

 SqlConnection connection = new SqlConnection(("Data Source=ROBEL-HP;Initial Catalog=RocoSportsDB;Integrated Security=True")); 
 try
 { 
    SqlCommand cmd = new SqlCommand(); 
    cmd.Connection = connection; 
    cmd.CommandText = @"INSERT INTO HTLineUp (GameID, HomeTeamLineUpNo, HomeTeamLineUpName) VALUES (@GameID,@Number,@Name)"; 

    cmd.Parameters.AddWithValue("@GameID", GameID); 
    cmd.Parameters.AddWithValue("@Number", Number); 
    cmd.Parameters.AddWithValue("@Name", Name); 

    // use a debugger to see if any rows were actually affected / inserted
    int rowsAffected = cmd.ExecuteNonQuery(); 
 } 
 catch(SQLException error)
 {
     // Use a debugger to see if you are getting an error on execution
     string errorText = error.message;
 }

您的查询字符串看起来不错,因此可能是权限错误。但上述步骤将帮助您追踪它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 2011-10-10
    • 2015-07-27
    • 2014-01-23
    • 2019-05-22
    • 1970-01-01
    相关资源
    最近更新 更多