Yuuu1 2019-07-28 20:45 采纳率: 50%
浏览 394

C#.net中GRIDVIEW的SQL更新语句的问题

** 我要做的是点击GRIDVIEW(代码加载的内容)中更新功能按钮 然后更新相关信息,由于某些原因(说起来太麻烦了),只能使用自己写的代码而不是自动生成的UPDATE语句。
但是自己写的UPDATE语句出现问题,更新信息失败。在SQL SERVER中能正常使用 所以我猜是调用GRIDVIEW中数据时出现问题。但是试过很多方法都不能使用 不知道问题出现在哪里 希望前辈们能帮我看看

下面贴出几张截图和代码
图一是在SQL中正常使用的代码
图片说明

图二所示 断点打完 那几个变量是空值
图片说明

图片说明

下面贴出代码

这是后端代码

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class HTML_ScoreManage : System.Web.UI.Page
{
    SqlConnection sqlcon; 
    SqlCommand sqlcom;
    string strCon = "Data Source=DESKTOP-79153UB; Initial Catalog=db_StudentManage;Integrated Security=True";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack) 
        { 
            bind(); 
        }
    }
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
    { 
        GridView1.EditIndex = e.NewEditIndex; 
        bind(); 
    }

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) //出现问题的函数
    {
        sqlcon = new SqlConnection(strCon);
        string sqlstr = "update tb_Choosec001 set SName='" +GridView1.Rows[e.RowIndex].Cells[1].Text.ToString().Trim() +
                              "',Score='" + GridView1.Rows[e.RowIndex].Cells[2].Text.ToString().Trim() +
                              "' where SId='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
                                                            //上面几个GRIDVIEW1表格中数据调用为空值
        sqlcom = new SqlCommand(sqlstr, sqlcon); 
        sqlcon.Open(); 
        sqlcom.ExecuteNonQuery(); 
        sqlcon.Close(); 
        GridView1.EditIndex = -1;
        bind(); 
    }
    //取消    
    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)    
    {        
        GridView1.EditIndex = -1;        
        bind();    
    }
     public void bind()    
     {
         string sqlstr = "select * from tb_Choosec001";        
         sqlcon = new SqlConnection(strCon);        
         SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);        
         DataSet myds = new DataSet();        
         sqlcon.Open();
         myda.Fill(myds, "tb_Choosec001");        
         GridView1.DataSource = myds;        
         GridView1.DataKeyNames = new string[] { "SId" };//主键        
         GridView1.DataBind();        
         sqlcon.Close();    
     }
}

下面是前端

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ScoreManage2.aspx.cs" Inherits="HTML_ScoreManage" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating">
            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
            <Columns>
                <asp:BoundField DataField="SId" HeaderText="学生ID" />
                <asp:BoundField DataField="SName" HeaderText="学生姓名" />
                <asp:BoundField DataField="Score" HeaderText="成绩" />
                <asp:CommandField ShowSelectButton="True" />
                <asp:CommandField ShowEditButton="True" />
            </Columns>
            <EditRowStyle BackColor="#999999" />
            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
            <SortedAscendingCellStyle BackColor="#E9E7E2" />
            <SortedAscendingHeaderStyle BackColor="#506C8C" />
            <SortedDescendingCellStyle BackColor="#FFFDF8" />
            <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
        </asp:GridView>

    </div>
    </form>
</body>
</html>

  • 写回答

1条回答

  • threenewbee 2019-07-28 21:39
    关注

    sqlcom = new SqlCommand(sqlstr, sqlcon);
    这里下断点输出下sqlstr和你第一个图是否一致。仔细检查。

    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗