数据库连接 con = new 数据库连接();
SqlConnection conn = con.OpenConn();
SqlDataAdapter da = new SqlDataAdapter("select * from 库存盘点", conn);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.Update(Mdt);
conn.Close();
da.Dispose();
cb.Dispose();
MessageBox.Show("更新成功", "系统提示",MessageBoxButtons.OK, MessageBoxIcon.Information);
代码都执行完了,消息框都弹出了,就是数据库中没有插入数据。
我试验了一下,用SqlCommand com = new SqlCommand("insert into 库存盘点 values('" + bh + "','" + mc + "','" + tm + "','" + ge + "','" + dw + "','" + pp + "','" + jj + "','" + sj + "','" + kc + "')", conn);
com.ExecuteNonQuery();可以插入新的数据。
SqlConnection conn = con.OpenConn();
SqlDataAdapter da = new SqlDataAdapter("select * from 库存盘点", conn);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.Update(Mdt);
conn.Close();
da.Dispose();
cb.Dispose();
MessageBox.Show("更新成功", "系统提示",MessageBoxButtons.OK, MessageBoxIcon.Information);
代码都执行完了,消息框都弹出了,就是数据库中没有插入数据。
我试验了一下,用SqlCommand com = new SqlCommand("insert into 库存盘点 values('" + bh + "','" + mc + "','" + tm + "','" + ge + "','" + dw + "','" + pp + "','" + jj + "','" + sj + "','" + kc + "')", conn);
com.ExecuteNonQuery();可以插入新的数据。
解决方案 »
- 有没有人知道怎么把很多Crystal Report(水晶报表)的报表封装成c#的一个DLL
- 谁能告诉我.NET代码生成器怎么用啊?最简单的 能连到数据库就行。我用这个生成,总有错误呢。5555555555
- 主 快来救救我把
- 数字金额转换成大写汉字
- 在js中怎么调后置代码中的方法啊?
- C#编写的珠宝软件,请多指教。
- C# winform DataGridView的扩展操作
- .net 能做些什么(或者说为什么用.net,什么情况用.net)?
- 怎么样实现在datagrid中按下回车键就添加一行让用户输入值?
- 如何将已从C++那边传过来的指针类型转换为Base64字符串(不知道图片长度)
- 调用dll方法异步返回事件问题?(在线、马上揭帖)
- using System;
没看到有插入数据的
da.UpdateCommand=".........";
自动编号 AT = new 自动编号();
private void 库存盘点_Load(object sender, EventArgs e)
{
AT.AutoNum("select 盘点单号 from 库存盘点", "库存盘点", "盘点单号", "10001", txt盘点单号);
} private void btn生成盘点_Click(object sender, EventArgs e)
{
DGV盘点表.Font = new Font("Tahoma", 10);
数据库连接 con = new 数据库连接();
SqlConnection conn = con.OpenConn();
SqlDataAdapter da = new SqlDataAdapter("select 商品编号,商品名称,商品条码,商品规格,商品单位,商品品牌,商品进价,商品售价,商品库存 from 商品档案", conn);
da.Fill(Mdt);
Mdt.Columns.Add("盘点单号").SetOrdinal(0);
Mdt.Columns.Add("盘点数量");
Mdt.Columns.Add("损益数量");
Mdt.Columns.Add("损益金额");
Mdt.Columns.Add("盘点人员");
Mdt.Columns.Add("盘点日期");
Mdt.Columns.Add("录入人员");
Mdt.Columns.Add("录入日期");
Mdt.PrimaryKey = new DataColumn[] { Mdt.Columns["商品编号"] };//设置主键。
for (int i = 0; i < Mdt.Rows.Count; i++)
{
Mdt.Rows[i]["盘点日期"] = Convert.ToString(DateTime.Now);
Mdt.Rows[i]["盘点单号"] = txt盘点单号.Text;
}
DGV盘点表.DataSource = Mdt;
DGV盘点表.Columns[0].Visible = false;
DGV盘点表.Columns[7].Visible = false;
DGV盘点表.Columns[9].Visible = false;
DGV盘点表.Columns[11].Visible = false;
DGV盘点表.Columns[12].Visible = false;
DGV盘点表.Columns[13].Visible = false;
DGV盘点表.Columns[14].Visible = false;
DGV盘点表.Columns[15].Visible = false;
DGV盘点表.Columns[16].Visible = false;
conn.Close();
da.Dispose();
}
private void btn冻结库存_Click(object sender, EventArgs e)
{
数据库连接 con = new 数据库连接();
SqlConnection conn = con.OpenConn();
SqlDataAdapter da = new SqlDataAdapter("select * from 库存盘点", conn);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.Update(Mdt);//当代码执行到这里报错:(对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。)数据库设置主键之后又报错:(违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条。)
conn.Close();
da.Dispose();
cb.Dispose();
MessageBox.Show("库存冻结成功!冻结时间为:" + DateTime.Now + "", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}之前的也是这么做的,怎么就能插入新的数据。望高手解答!!!
SqlDataAdapter da = new SqlDataAdapter("select * from 库存盘点", conn);
DataSet ds=new DataSet();
da.fill(ds,"库存盘点");
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.Update(ds,"库存盘点");
conn.Close();
da.Dispose();
cb.Dispose();
MessageBox.Show("更新成功", "系统提示",MessageBoxButtons.OK, MessageBoxIcon.Information);
不用da.Fill();我纯手工录入到DataTable中的相同数据就能够写入数据库。用dt的Copy方法复制一个DT也不管用。或者说要从DataGridView中写入到数据库中上万条记录,还有什么方法更好?for循环?