类似于入库单的保存,有表头和表体;对应于数据库中的主表和字表;
主表中的主键不是自动增长的;保存代码放在一个事务中:当保存主表以后,如何将主表的主键插入到字表中?
主表中的主键不是自动增长的;保存代码放在一个事务中:当保存主表以后,如何将主表的主键插入到字表中?
解决方案 »
- vs2012不能在windows2003上安装,请问.netframework4.5能不能在windows2003和windows XP上安装吗?
- 做程序的,要学的东西太多了,比学校学的还要多...
- 一个小问题
- 有一个服务 程序数据读取相当频繁,一秒钟有200-500个查询请求,然后根据 各自的 要求返回数据,请高人指点下
- mdi窗体中如何让子窗体吸附停靠在你窗体的一边
- 数据库访问的性能问题
- SQLServer的C#编程问题
- .net加密
- 关于“远程处理”之byreference,最简单的例程运行居然出错!
- 请大家给个建议!关于分布式的问题。
- 在用LocalReport打印时,每次打印完毕在指定报表的位置自动创建的图片不会自动清除且没有办法在程序中指定打印机的纸张规格。请指教,谢谢!
- 【100+100分】WMI远程控制 拒绝访问
保存字表是用dataadapter.update();
其中主表的主键在datagridview中是隐藏的一列!在保存的时候,子表总是空的; private string Save()
{
string str = "";
if (tbx_id.Text == "" || tbx_name.Text == "")
{
MessageBox.Show("信息不完整!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
OracleConnection oracn = new OracleConnection(_connString);
OracleTransaction oratran = null;
OracleCommand oracmd = new OracleCommand();
try
{
oracn.Open();
oratran = oracn.BeginTransaction();
oracmd.Transaction = oratran;
if (_add) //表示新增
{
oracmd.CommandText = "insert into element_assemble (assemble_id,assemble_name,memo) values('" + tbx_id.Text + "','" + tbx_name.Text + "'" +
" ,'" + tbx_memo.Text + "')";
oracmd.Connection = oracn;
oracmd.ExecuteNonQuery();
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].Cells[0].Value = tbx_id.Text;
}
orada.Update(ds.Tables[0]);
oratran.Commit();
}
}
catch (Exception ex)
{
oratran.Rollback();
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK , MessageBoxIcon.Error );
str = ex.Message;
}
finally
{
if (oracn.State == ConnectionState.Open) oracn.Close();
} return str;
}
如何操作?
谢谢!
把这个值 分别查到主表 和它关联的子表对应的字段中去 就可以了
两个sql实现 string MainSql = "insert into '主表' (id) value("+ 主键变量 +")";
.....
关联的子表select distinct object_name(fkeyid) as 表名, object_name(constid) as 外键名
from sysreferences
where rkeyid = object_id('主表') order by 1
所以不能保存!
在另外的一个页面:用一个表填充,用sqldataadapter和sqlcommandbuilder来保存多行就没有问题!为什么这里用在子表上就不行呢?请各位大虾帮忙!谢谢!