C# WinForm 做单据 有引用其他表的字段的表体保存 商品资料表:商品编号,商品名称,规格
单据明细表:商品编号,数量,单价,金额
录入界面中如下: 商品编号,商品名称,规格,数量,单价,金额
其中商品名称和规格只是起到显示和调用商品记录作用,保存时只保存单据明细中相关字段值。
selectCommand :
select a.商品编号,b.商品名称,b.规格,a.数量,a.单价,a.金额 from 单据明细表 a,商品资料表 b
where a.商品编号=b.商品编号 sqlCommandbuilder 不支持 基于多个表的更新..这个保存应该怎么处理..还是要用存储过程...
单据明细表:商品编号,数量,单价,金额
录入界面中如下: 商品编号,商品名称,规格,数量,单价,金额
其中商品名称和规格只是起到显示和调用商品记录作用,保存时只保存单据明细中相关字段值。
selectCommand :
select a.商品编号,b.商品名称,b.规格,a.数量,a.单价,a.金额 from 单据明细表 a,商品资料表 b
where a.商品编号=b.商品编号 sqlCommandbuilder 不支持 基于多个表的更新..这个保存应该怎么处理..还是要用存储过程...
參數直接傳給存儲過程,批量插入或者更新比較好,達到數據的一致性
StringBuilder sb = new StringBuilder();
if (dsPublish.Tables[1].Rows.Count > 0)
{
for (int m = 0; m < dsPublish.Tables[1].Rows.Count; m++)
{
sb.Append(";insert into #tbValue(valueb,valuec,valued,wono,businessid,partno,deliverydate,deliverytime)");
sb.Append("values(" + dsPublish.Tables[1].Rows[m]["valueb"].ToString() + "," + dsPublish.Tables[1].Rows[m]["valuec"].ToString() + "," + dsPublish.Tables[1].Rows[m]["valued"].ToString() + ",'" + dsPublish.Tables[1].Rows[m]["wono"].ToString() + "','" + dsPublish.Tables[1].Rows[m]["businessid"].ToString() + "','" + dsPublish.Tables[1].Rows[m]["partno"].ToString() + "','" + dsPublish.Tables[1].Rows[m]["deliverydate"].ToString() + "','" + dsPublish.Tables[1].Rows[m]["deliverytime"].ToString() + "')"); }
} DbCommand comand = db.GetStoredProcCommand("Proc_KBjitPublish");
db.AddInParameter(comand, "@Str", DbType.String, sb.ToString());
if (db.ExecuteNonQuery(comand) > 0)
{
return true;
}
else
{
return false;
}