把xml文件中的2个表(其实是主从表)导入数据库,但是主表导入后主键id已经变了,所以从表中的外键也需要根据主表导入数据库后的主键进行变化.我使用如下方法,可是从表中的外键并没有变化还是以前在xml中的值,不知道dataset建立主从关系后能不能自动的变化从表中外键的值.
下面是我写的程序
string conn=LegalManager.Sql.GetConString();//获取数据连接
SqlConnection myConn = new SqlConnection(conn);
myConn.Open();
DataSet ds=new DataSet();
ds.ReadXml("E:\\aa\\Lawsuit_Invest.xml",XmlReadMode.Auto);
ds.ReadXml("E:\\aa\\Lawsuit_Invest_Type.xml",XmlReadMode.Auto);
ds.Relations.Add("abc",ds.Tables[0].Columns[0],ds.Tables[1].Columns[1]);
SqlDataAdapter sda = new SqlDataAdapter();
SqlCommandBuilder custCB = new SqlCommandBuilder(sda);
sda.SelectCommand = new SqlCommand("select * from Lawsuit_Invest", myConn);
sda.Update(ds.Tables[0]);
SqlCommand insert_r2=new SqlCommand("Insert into Lawsuit_Invest_Type(InvestId) values (@InvestId)",myConn);
insert_r2.Parameters.Add(new SqlParameter("@InvestId",SqlDbType.Int,4,"InvestId"));
sda.InsertCommand=insert_r2;
if(ds.HasChanges())
{
sda.Update(ds.Tables[1]);
}
没分了,请高手指导
下面是我写的程序
string conn=LegalManager.Sql.GetConString();//获取数据连接
SqlConnection myConn = new SqlConnection(conn);
myConn.Open();
DataSet ds=new DataSet();
ds.ReadXml("E:\\aa\\Lawsuit_Invest.xml",XmlReadMode.Auto);
ds.ReadXml("E:\\aa\\Lawsuit_Invest_Type.xml",XmlReadMode.Auto);
ds.Relations.Add("abc",ds.Tables[0].Columns[0],ds.Tables[1].Columns[1]);
SqlDataAdapter sda = new SqlDataAdapter();
SqlCommandBuilder custCB = new SqlCommandBuilder(sda);
sda.SelectCommand = new SqlCommand("select * from Lawsuit_Invest", myConn);
sda.Update(ds.Tables[0]);
SqlCommand insert_r2=new SqlCommand("Insert into Lawsuit_Invest_Type(InvestId) values (@InvestId)",myConn);
insert_r2.Parameters.Add(new SqlParameter("@InvestId",SqlDbType.Int,4,"InvestId"));
sda.InsertCommand=insert_r2;
if(ds.HasChanges())
{
sda.Update(ds.Tables[1]);
}
没分了,请高手指导
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货