请问,我的销售明细表里面,若将销售数量修改为零,一点更新销售表按钮,数据便不见了,查询也查询不到,难道是销售数据为零的数据,不能查询吗;以下分别是我的更新代码和查询代码,请看看哪里有问题呢;
更新代码如下
```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也改了
不知道你这个问题是否已经解决, 如果还没有解决的话: