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和你第一个图是否一致。仔细检查。

    评论

报告相同问题?

悬赏问题

  • ¥20 SQL server表计算问题
  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出