首页 > 解决方案 > 如何在 C# 中将许多整数值更新回它们各自在数据库中的列

问题描述

我有从数据库加载信息的数据网格,当像这样选择每一行时,每一列都像这样显示在一个 textbox1 中;

private void dgvGrade_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        DataGrid dg = sender as DataGrid;
        DataRowView dr = dg.SelectedItem as DataRowView;
        if (dr != null)
        {
            
            if (dgvGrade.SelectedItems.Count > 0)
            {
                foreach (var obj in dgvGrade.SelectedItems)
                {
                    txtids.Text += dr["IDNO"].ToString();
                    str += dr["ENGLISH"] + "   " + dr["MATH"] + "    " + dr["SOCIAL"] + "   " + dr["SCIENCE"] + "   " + dr["PRETECH"] + "   " + dr["ICT"] + "   " + dr["RME"] + "  " + dr["HOMEECOMICS"] + "  " + dr["HISTORY"] + "   " + dr["OWOP"] + "   " + dr["CREATIVEART"] + "   " + dr["FRENCH"] + "   " + dr["LANGUAGE"] + " " + " ";
                }
            }
            else
            {
                //DO NOTHING
            }
            txtresults.Text = str;
        }

在更改文本框1中的每个数字之后,我想将每个值保存回数据库的每一列,所以我尝试了这个;

SqlConnection Conn = new SqlConnection(shoolmanangmentconn);
        DataTable dt = new DataTable();
        Conn.Open();
        SqlCommand cmd = new SqlCommand("UPDATE tbl_TestingTheApplicationSubject SET MATH=@MATH, ENGLISH=@ENGLISH, SOCIAL=@SOCIAL, SCIENCE=@SCIENCE, RME=@RME, PRETECH=@PRETECH, HOMEECOMICS=@HOMEECOMICS,  HISTORY=@HISTORY, OWOP=@OWOP, ICT=@ICT, FRENCH=@FRENCH, CREATIVEART=@CREATIVEART, LANGUAGE=@LANGUAGE WHERE IDNO=@IDNO", Conn);
        cmd.CommandType = CommandType.Text;
        string[] arryval = txtresults.Text.Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
        int i = 0;
        cmd.Parameters.Clear();
        **cmd.Parameters.AddWithValue("@IDNO",txtids.Text)**; // TODO: use correct value of IDNO
        cmd.Parameters.AddWithValue("@ENGLISH", arryval[i++]);
        cmd.Parameters.AddWithValue("@MATH", arryval[i++]);
        cmd.Parameters.AddWithValue("@SOCIAL", arryval[i++]);
        cmd.Parameters.AddWithValue("@SCIENCE", arryval[i++]);
        cmd.Parameters.AddWithValue("@PRETECH", arryval[i++]);
        cmd.Parameters.AddWithValue("@ICT", arryval[i++]);
        cmd.Parameters.AddWithValue("@RME", arryval[i++]);
        cmd.Parameters.AddWithValue("@HOMEECOMICS", arryval[i++]);
        cmd.Parameters.AddWithValue("@HISTORY", arryval[i++]);
        cmd.Parameters.AddWithValue("@OWOP", arryval[i++]);
        cmd.Parameters.AddWithValue("@CREATIVEART", arryval[i++]);
        cmd.Parameters.AddWithValue("@FRENCH", arryval[i++]);
        cmd.Parameters.AddWithValue("@LANGUAGE", arryval[i++]);
        cmd.ExecuteNonQuery();

但我最终只在其 IDNO 列中保存了一行,但我也选择了许多 IDNO 列,但我不知道如何根据那里的 IDNO 编号将每一行保存回来,请有人帮助我(我正在使用 c# wpf)

标签: c#wpf

解决方案


推荐阅读