将销售表的销售数量修改为零是,保存数据便不见了;

请问,我的销售明细表里面,若将销售数量修改为零,一点更新销售表按钮,数据便不见了,查询也查询不到,难道是销售数据为零的数据,不能查询吗;以下分别是我的更新代码和查询代码,请看看哪里有问题呢;

img

更新代码如下



```c#
 private void btnupdatesale_Click(object sender, EventArgs e)
        {
            conn = new SqlConnection("server=192.168.100.247;database=Whmesinfo;user=sa;password=whyy@2021");

            conn.Open();

            try
            {

                DataTable changedt = dt.GetChanges();  //将发生变化的内容,存储在另一个表内;         

                foreach (DataRow dr in changedt.Rows)
                {
                    string strsql = string.Empty;

                    if (dr.RowState == System.Data.DataRowState.Modified)//修改操作
                    {

                        strsql = @"UPDATE [dbo].[w_saledetail] 
                     SET                 
                      [matname] = '" + dr["matname"].ToString() + @"'
                     ,[specmodel] = '" + dr["specmodel"].ToString() + @"'
                     ,[batchNo] = '" + dr["batchNo"].ToString() + @"'                     
                     ,[prodate] = '" + Convert.ToDateTime(dr["prodate"]) + @"' 
                     ,[expdate] = '" + Convert.ToDateTime(dr["expdate"]) + @"' 
                     ,[saledate] = '" + Convert.ToDateTime(dr["expdate"]) + @"'                     
                     ,[saleNo] = '" + dr["saleNo"].ToString() + @"'               
                     ,[inv] = '" + dr["inv"].ToString() + @"' 
                     ,[note] = '" + dr["note"].ToString() + @"'   
                     ,[id] = '" + dr["id"].ToString() + @"'                                                      
                     where saleid = '" + dr["saleid"].ToString() + "'";

                    }
                 

                    SqlCommand comm = new SqlCommand(strsql, conn);

                    comm.ExecuteNonQuery();

                }
                MessageBox.Show("更新成功");
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                MessageBox.Show("请输入修改内容后,再保存修改");
            }
            finally
            {
                conn.Close();
            }
        }

下面是查询代码 

```c#
 private void button1_Click(object sender, EventArgs e)
        {
            conn = new SqlConnection("server = 192.168.100.247;database = Whmesinfo;user = sa;password = whyy@2021");

            conn.Open();

             sqlstring = @"select a.saleid,a.matname,a.specmodel,a.batchNo,a.prodate,a.expdate,a.saledate,a.saleNo,b.inv,b.note,a.id from w_saledetail a left join w_Invstatement b
                       on a.id = b.id where a.matname like '%" + textBox1.Text + "%' and a.batchNo like '%" + textBox6.Text + "%' and [saledate] >= '"
                + dateTimePicker1.Value.ToString("yyyy-MM-dd HH:mm:ss") + "'and [saledate] <= '"
                + dateTimePicker2.Value.ToString("yyyy-MM-dd HH:mm:ss") + "'order by saledate asc"             

            try
            {
                SqlCommand cmd = new SqlCommand(sqlstring, conn);

                SqlDataAdapter sda = new SqlDataAdapter();

                sda.SelectCommand = cmd;

                DataSet ds = new DataSet();

                sda.Fill(ds, "w_saledetail");

                dt = ds.Tables["w_saledetail"];

                dataGridView1.DataSource = dt.DefaultView;

                this.dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True;//让显示内容可以换行显示

                dataGridView1.Columns[0].Visible = false;

                dataGridView1.Columns[1].HeaderText = "产品名称";
                dataGridView1.Columns[2].HeaderText = "规格型号";
                dataGridView1.Columns[3].HeaderText = "产品批号";
                dataGridView1.Columns[4].HeaderText = "生产日期";
                dataGridView1.Columns[5].HeaderText = "到期日期";
                dataGridView1.Columns[6].HeaderText = "销售日期";
                dataGridView1.Columns[7].HeaderText = "销售数量";
                dataGridView1.Columns[8].HeaderText = "最新库存";
                dataGridView1.Columns[9].HeaderText = "备注说明";
                dataGridView1.Columns[10].HeaderText = "ID序列号";

            }
            catch (Exception)
            { throw; }

            finally { conn.Close(); }
        }

明白了,检查了一下,是将销售日期写错了,修改后正确了

是不是因为你把id也改了

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^