向表追加另一表表信息
表结构
a1
a b c
-----------
1 aa 0
2 bb 1
3 cc 1
4 dd 2
5 ee 2
6 ff 2
---------------------
b1表
e f g
01 ad 0
02 ac 01
03 ac 01
04 ac 02
05 ac 02
a1表成效果:
a b c
-----------
1 aa 0
2 bb 1
3 cc 1
4 dd 2
5 ee 2
6 ff 2
7 ad 0
8 ac 7
9 ac 7
10 ac 8
11 ac 8
-------------------------------------------------------------------------
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//Session["pNode"] = System.Configuration.ConfigurationManager.ConnectionStrings["pnod"].ToString(); //预设置pid
Session["outTable"] = System.Configuration.ConfigurationManager.ConnectionStrings["tblname"].ToString();//输出表
Session["filed_id"] = System.Configuration.ConfigurationManager.ConnectionStrings["filed_id"].ToString();//自动增长列
Session["filed_pid"] = System.Configuration.ConfigurationManager.ConnectionStrings["filed_pid"].ToString();//父ID
Session["filed_name"] = System.Configuration.ConfigurationManager.ConnectionStrings["filed_name"].ToString();//文本名称
Session["outpid"] = System.Configuration.ConfigurationManager.ConnectionStrings["outpid"].ToString();//预计设置父输出表ID
Session["inpid"] = System.Configuration.ConfigurationManager.ConnectionStrings["inpid"].ToString();//预计设置父输入表ID
if (!IsPostBack)
{
BindNodeLeft();
BindNodeRight();
}
}
#region 导出数据表绑定
/// <summary>
/// 绑定左侧导出数据表
/// </summary>
private void BindNodeLeft()
{
string strsql = "select * from " + Session["outTable"].ToString() + " where 1=1";
if (!IsPostBack)
{
strsql += " and " + Session["filed_pid"].ToString() + "='" + Session["outpid"].ToString() + "'";
DataTable dt = new cc.DBHepler().RunSql(strsql, CommandType.Text, null, null).Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
{
string strText = dt.Rows[i][Session["filed_name"].ToString()].ToString();
if (strText.Length > 6)
strText = strText.Substring(0, 6) + "...";
TreeNode TN = new TreeNode();
TN.Text = strText;
TN.ToolTip= dt.Rows[i][Session["filed_name"].ToString()].ToString();
TN.Value = dt.Rows[i][Session["filed_id"].ToString()].ToString();
this.TreeView1.Nodes.Add(TN);
this.TreeView1.ShowExpandCollapse = true;
this.TreeView1.ExpandAll();
BindLeftNodes(TN);
}
}
}
/// <summary>
/// 递归目录节点
/// </summary>
/// <param name="tn"></param>
private void BindLeftNodes(TreeNode tn)
{
string pid = tn.Value;
string strsql = "select * from " + Session["outTable"].ToString() + " where 1=1 and " + Session["filed_pid"].ToString() + "='" + tn.Value + "'";
DataTable dt = new cc.DBHepler().RunSql(strsql, CommandType.Text, null, null).Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
{
string strText = dt.Rows[i][Session["filed_name"].ToString()].ToString();
if (strText.Length > 6)
strText = strText.Substring(0, 6) + "...";
TreeNode tnn = new TreeNode();
tnn.ToolTip = dt.Rows[i][Session["filed_name"].ToString()].ToString();
tnn.Text = strText;
tnn.Value = dt.Rows[i][Session["filed_id"].ToString()].ToString();
tn.ChildNodes.Add(tnn);
BindLeftNodes(tnn);
}
}
#endregion
#region 绑定右侧导入目录树
/// <summary>
/// 绑定右侧导入目录树
/// </summary>
private void BindNodeRight()
{
string strsql = "select * from " + Session["inTable"].ToString() + " where 1=1 and " + Session["filed_pid"].ToString() + "='" + Session["inpid"].ToString() + "'";
DataTable dt = new cc.DBHepler().RunSql(strsql, CommandType.Text, null, null).Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
{
string strText = dt.Rows[i][Session["filed_name"].ToString()].ToString();
if (strText.Length > 6)
strText = strText.Substring(0, 6) + "...";
TreeNode TN = new TreeNode();
TN.ToolTip = dt.Rows[i][Session["filed_name"].ToString()].ToString();
TN.Text = strText;//dt.Rows[i][Session["filed_name"].ToString()].ToString();
TN.Value = dt.Rows[i][Session["filed_id"].ToString()].ToString();
//TN.Target = dt.Rows[i][2].ToString();
this.TreeView2.Nodes.Add(TN);
BindNode(TN);
this.TreeView2.ShowExpandCollapse = true;
this.TreeView2.ExpandAll();
}
}
/// <summary>
/// 递归目录节点
/// </summary>
/// <param name="tn"></param>
private void BindNode(TreeNode tn)
{
string pid = tn.Value;
string strsql = "select * from " + Session["inTable"].ToString() + " where 1=1 and " + Session["filed_pid"].ToString() + "='" + tn.Value + "'";
DataTable dt = new cc.DBHepler().RunSql(strsql, CommandType.Text, null, null).Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
{
string strText = dt.Rows[i][Session["filed_name"].ToString()].ToString();
if (strText.Length > 6)
strText = strText.Substring(0, 6) + "...";
TreeNode tnn = new TreeNode();
tnn.Text = strText;
tnn.ToolTip = dt.Rows[i][Session["filed_name"].ToString()].ToString();
tnn.Value = dt.Rows[i][Session["filed_id"].ToString()].ToString();
//tnn.Target = dt.Rows[i][2].ToString();
tn.ChildNodes.Add(tnn);
BindNode(tnn);
}
}
#endregion
#region 向数据库插入数据方法1
private void DBind(string pid)
{
DataTable dt;
string strsql = "select * from " + Session["outTable"].ToString() + " where " + Session["filed_id"].ToString() + "=" + pid;
dt = new cc.DBHepler().RunSql(strsql, CommandType.Text, null, null).Tables[0];
if (dt.Rows.Count > 0)
{
// strsql = "insert into " + Session["inTable"].ToString() + " (name,parent_id)values('" + dt.Rows[0]["name"].ToString() + "'," + Session["pNode"].ToString() + ")";
string sqlfield = "";
string sqlvalues = "";
strsql = "insert into " + Session["inTable"].ToString() + " (";
for (int i = 0; i < dt.Columns.Count; i++)
{
if (dt.Rows[0][i].ToString() != "" && dt.Columns[i].ColumnName.ToLower() != Session["filed_id"].ToString() && dt.Columns[i].ColumnName.ToLower() != Session["filed_pid"].ToString())
{
sqlfield += dt.Columns[i].ColumnName + ",";
sqlvalues += "'" + dt.Rows[0][i].ToString() + "',";
}
}
sqlfield += Session["filed_pid"].ToString();
sqlvalues += Session["pNode"].ToString();
strsql += sqlfield + ") values(" + sqlvalues + ")";
new cc.DBHepler().RunSqlRetNull(strsql, CommandType.Text, null, null);//插入第一条数据
strsql = "select max(" + Session["filed_id"].ToString() + ") from " + Session["inTable"].ToString();
Session["num"] = null;
Session["num"] = new cc.DBHepler().RunSqlRetObj(strsql, CommandType.Text, null, null).ToString();//得到被插入表最大ID
strsql = "select * from " + Session["outTable"].ToString() + " where " + Session["filed_pid"].ToString() + "=" + pid;
dt = new cc.DBHepler().RunSql(strsql, CommandType.Text, null, null).Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
{
// strsql = "insert into " + Session["inTable"].ToString() + " (name," + Session["filed_pid"].ToString() + ")values('" + dt.Rows[i]["name"].ToString() + "'," + Session["num"].ToString() + ")";
sqlfield = "";
sqlvalues = "";
strsql = "insert into " + Session["inTable"].ToString() + " (";
for (int num = 0; num < dt.Columns.Count; num++)
{
if (dt.Rows[i][num].ToString() != "" && dt.Columns[num].ColumnName.ToLower() != Session["filed_id"].ToString() && dt.Columns[num].ColumnName.ToLower() != Session["filed_pid"].ToString())
{
sqlfield += dt.Columns[num].ColumnName + ",";
}
}
sqlfield += Session["filed_pid"].ToString();
for (int num1 = 0; num1 < dt.Columns.Count; num1++)
{
if (dt.Rows[i][num1].ToString() != "" && dt.Columns[num1].ColumnName.ToLower() != Session["filed_id"].ToString() && dt.Columns[num1].ColumnName.ToLower() != Session["filed_pid"].ToString())
{
sqlvalues += "'" + dt.Rows[i][num1].ToString() + "',";
}
}
sqlvalues += Session["num"].ToString();
strsql += sqlfield + ") values(" + sqlvalues + ")";
new cc.DBHepler().RunSqlRetNull(strsql, CommandType.Text, null, null);//插入下级数据
}
}
}
#endregion
#region 向数据库插入数据方法2
private void DataShow()
{
ArrayList al = new ArrayList();
ArrayList al1 = new ArrayList();
ArrayList al2 = new ArrayList();
string strsql;
DataTable dt;
#region 插入操作
string idd = Session["id"].ToString();
strsql = "select * from " + Session["outTable"].ToString() + " where " + Session["filed_id"].ToString() + " =" + idd;
dt=new cc.DBHepler().RunSql(strsql, CommandType.Text, null, null).Tables[0];
for (int s = 0; s < dt.Rows.Count; s++)
{
object obj = dt.Rows[s][Session["filed_id"].ToString()].ToString();
al.Add(obj);
}
strsql = "select * from " + Session["outTable"].ToString() + " where " + Session["filed_pid"].ToString() + " =" + idd;
dt = new cc.DBHepler().RunSql(strsql, CommandType.Text, null, null).Tables[0];
for (int s = 0; s < dt.Rows.Count; s++)
{
object obj = dt.Rows[s][Session["filed_id"].ToString()].ToString();
al.Add(obj);
if (s == 0)
{
Session["BasePid"] = dt.Rows[s][Session["filed_pid"].ToString()].ToString();
Session["Baseid"] = dt.Rows[s][Session["filed_id"].ToString()].ToString();
}
DBindID(al, obj);
}
string strFilter = "";
foreach (object obj in al)
{
strFilter+=obj.ToString()+",";
}
if (strFilter.IndexOf(",")!=-1)
strFilter = strFilter.Substring(0, strFilter.Length - 1);
System.Data.SqlClient.SqlParameter[] sParams1 = new System.Data.SqlClient.SqlParameter[]{
new cc.DBHepler().MakeParam("@tabName", SqlDbType.VarChar,50, ParameterDirection.Input,Session["outTable"].ToString()),
new cc.DBHepler().MakeParam("@Filter", SqlDbType.VarChar,3000, ParameterDirection.Input,strFilter),
new cc.DBHepler().MakeParam("@fid",SqlDbType.VarChar,50, ParameterDirection.Input,Session["filed_id"].ToString()),
new cc.DBHepler().MakeParam("@fpid",SqlDbType.VarChar,50,ParameterDirection.Input,Session["filed_pid"].ToString())
};
dt = new cc.DBHepler().RunSql("proc_sel", CommandType.StoredProcedure, null, sParams1).Tables[0];
for (int j = 0; j < dt.Rows.Count; j++)
{
object obj = null;
#region 拼接SQL语句
string sqlfield = "";
string sqlvalues = "";
strsql = "";
//strsql = "insert into " + Session["inTable"].ToString() + " (";
for (int num = 0; num < dt.Columns.Count; num++)
{
if (dt.Rows[j][num].ToString() != "" && dt.Columns[num].ColumnName.ToLower()!=Session["filed_id"].ToString())
{
sqlfield += dt.Columns[num].ColumnName + ",";
}
}
for (int num1 = 0; num1 < dt.Columns.Count; num1++)
{
if (dt.Rows[j][num1].ToString() != "" && dt.Columns[num1].ColumnName.ToLower()!=Session["filed_id"].ToString())
{
sqlvalues += "'" + dt.Rows[j][num1].ToString() + "',";
}
if (dt.Columns[num1].ColumnName.ToLower().Equals(Session["filed_id"]))
{
Session["id"] = dt.Rows[j][num1].ToString();
}
if (dt.Columns[num1].ColumnName.ToLower().Equals(Session["filed_pid"].ToString()))
{
Session["pidvalue"] = dt.Rows[j][num1].ToString();
}
}
strsql += "(" + sqlfield.Substring(0, sqlfield.Length - 1) + ") values(" + sqlvalues.Substring(0, sqlvalues.Length - 1).ToString() + ")";//拼接insert sql语句
#endregion
#region 执行插入,返回插入的ID和被插入的ID并存储到相应的al1和al2数组
try
{
System.Data.SqlClient.SqlParameter[] sParams = new System.Data.SqlClient.SqlParameter[]{
new cc.DBHepler().MakeParam("@tabName", SqlDbType.VarChar,50, ParameterDirection.Input,Session["inTable"]),
new cc.DBHepler().MakeParam("@Filter1", SqlDbType.VarChar,3000, ParameterDirection.Input,strsql),
new cc.DBHepler().MakeParam("@fid",SqlDbType.VarChar,50, ParameterDirection.Input,Session["filed_id"]),
new cc.DBHepler().MakeParam("@fpid",SqlDbType.VarChar,50,ParameterDirection.Input,Session["filed_pid"]),
new cc.DBHepler().MakeParam("@pid",SqlDbType.VarChar,50,ParameterDirection.Input,Session["pidvalue"])
};
obj = new cc.DBHepler().RunSqlRetObj("proc_insert", CommandType.StoredProcedure, null, sParams);
}
catch (Exception ex)
{
Response.Write(ex.Message + "<hr/>");
}
#endregion
al1.Add(obj);
al2.Add(dt.Rows[j][Session["filed_id"].ToString()]);
}
#region 更新操作
for (int i = 0; i < dt.Rows.Count; i++)
{
try
{
int iii1 = Convert.ToInt32(dt.Rows[i]["pid"]);
int iii = al2.IndexOf(iii1);
if (iii != -1)
{
string ii = al1[al2.IndexOf(iii1)].ToString();
string strqq = al1[i].ToString();
//id=strqq,
//pid=ii,
//name=ds.table[0]
System.Data.SqlClient.SqlParameter[] sParams2 = new System.Data.SqlClient.SqlParameter[]{
new cc.DBHepler().MakeParam("@tabName", SqlDbType.VarChar,50, ParameterDirection.Input,Session["inTable"].ToString()),
new cc.DBHepler().MakeParam("@fid", SqlDbType.VarChar,3000, ParameterDirection.Input,Session["filed_id"].ToString()),
new cc.DBHepler().MakeParam("@fpid",SqlDbType.VarChar,50, ParameterDirection.Input,Session["filed_pid"].ToString()),
new cc.DBHepler().MakeParam("@id",SqlDbType.VarChar,4,ParameterDirection.Input,strqq), //id值
new cc.DBHepler().MakeParam("@pid",SqlDbType.VarChar,4,ParameterDirection.Input,ii)//pid值
};
new cc.DBHepler().RunSqlRetNull("proc_update", CommandType.StoredProcedure, null, sParams2);
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
#endregion
int ss = int.Parse(Session["Baseid"].ToString());
int sso = 0;
if (al2.IndexOf(ss) > 0)
sso = al2.IndexOf(ss) - 1;
string strobj1 = al1[sso].ToString();
string oo = Session["pNode"].ToString();
//更新基类节点PID
System.Data.SqlClient.SqlParameter[] sParams3 = new System.Data.SqlClient.SqlParameter[]{
new cc.DBHepler().MakeParam("@tabName", SqlDbType.VarChar,50, ParameterDirection.Input,Session["inTable"].ToString()),
new cc.DBHepler().MakeParam("@fid", SqlDbType.VarChar,3000, ParameterDirection.Input,Session["filed_id"].ToString()),
new cc.DBHepler().MakeParam("@fpid",SqlDbType.VarChar,50, ParameterDirection.Input,Session["filed_pid"].ToString()),
new cc.DBHepler().MakeParam("@id",SqlDbType.VarChar,4,ParameterDirection.Input,strobj1), //id值
new cc.DBHepler().MakeParam("@pid",SqlDbType.VarChar,4,ParameterDirection.Input,Session["pNode"])//pid值
};
new cc.DBHepler().RunSqlRetNull("proc_update", CommandType.StoredProcedure, null, sParams3);
#endregion
}
private void DBindID(ArrayList al, object id)
{
string strsql2 = "select distinct * from " + Session["outTable"].ToString() + " where " + Session["filed_pid"] + " =" + id;
DataTable dtt;
dtt = new cc.DBHepler().RunSql(strsql2, CommandType.Text, null, null).Tables[0];
for (int s = 0; s < dtt.Rows.Count; s++)
{
object obj = dtt.Rows[s][Session["filed_id"].ToString()].ToString();
al.Add(obj);
DBindID(al, obj);
}
}
#endregion
#region 执行操作
/// <summary>
/// 执行操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
this.lit.Text = "";
Session["pNode"] = Session["to"].ToString();
DataShow();
// DBind(Session["id"].ToString());
TreeView2.Nodes.Clear();
BindNodeRight();
}
#endregion
protected void TreeView1_PreRender(object sender, EventArgs e)
{
this.TreeView1.ShowLines = true;
this.TreeView1.AccessKey = "T";
this.TreeView1.NodeIndent = 4;
this.TreeView1.NodeWrap = false;
}
protected void TreeView1_Init(object sender, EventArgs e)
{
this.TreeView1.ShowExpandCollapse = true;
}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
Session["id"] = this.TreeView1.SelectedNode.Value;
Session["name"] = this.TreeView1.SelectedNode.ToolTip;
this.Label3.Text = "[<font color='red'> "+Session["name"].ToString()+"</font> ]";
}
protected void Button2_Click(object sender, EventArgs e)
{
}
protected void TreeView2_Init(object sender, EventArgs e)
{
this.TreeView2.ShowExpandCollapse = true;
// this.TreeView2.ExpandAll();
}
protected void TreeView2_PreRender(object sender, EventArgs e)
{
this.TreeView2.ShowLines = true;
this.TreeView2.AccessKey = "T";
this.TreeView2.NodeIndent = 4;
this.TreeView2.NodeWrap = false;
}
protected void TreeView2_SelectedNodeChanged(object sender, EventArgs e)
{
this.Label2.Text="[<font color=red>"+ this.TreeView2.SelectedNode.Text+"</font>] 节点下...";
Session["to"] = this.TreeView2.SelectedNode.Value;
}
}
-------------------------------------------------------------------------------------------------------------
没有成功!换个试试!!
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using System.Data.SqlClient;
namespace cc
{
/// <summary>
/// Class1 的摘要说明
/// </summary>
public class Class1
{
public Class1()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private static void SelChildNode(string fromID, string outTableName, string inTableName,
string PidFiledName, string IdFiledName,
ArrayList al_old_id, ArrayList al_old_pid, ArrayList al_New_ID)
{
string strsql = "select * from " + outTableName + " where " + PidFiledName + "=" + fromID;
DataTable dt = new cc.DBHepler().RunSql(strsql,CommandType.Text,null,null).Tables[0];
for (int num2 = 0; num2 < dt.Rows.Count; num2++)
{
al_old_id.Add(dt.Rows[num2][IdFiledName]);
al_old_pid.Add(dt.Rows[num2][PidFiledName]);
string strFilter = "";
string strFiled = "";
string strValue = "";
for (int colnum = 0; colnum < dt.Columns.Count; colnum++)
{
if (dt.Rows[num2][colnum] != null && !dt.Columns[colnum].ColumnName.ToLower().Equals(IdFiledName))
{
strFiled += dt.Columns[colnum].ColumnName + ",";
strValue += "'" + dt.Rows[num2][colnum] + "',";
}
}
if (strFiled.Length > 0 && strValue.Length > 0)
{
strFilter = "(" + strFiled.Substring(0, strFiled.Length - 1) + ") values(" + strValue.Substring(0, strValue.Length - 1) + ")";
SqlParameter[] strparams1 = new SqlParameter[] {
new cc.DBHepler().MakeParam("@tabName",SqlDbType.Char,50,ParameterDirection.Input,inTableName),
new cc.DBHepler().MakeParam("@Filter1",SqlDbType.Char,3000,ParameterDirection.Input,strFilter)
};
object newID = new cc.DBHepler().RunSqlRetObj("proc_insert", CommandType.StoredProcedure, null, strparams1);
al_New_ID.Add(newID);
SelChildNode(dt.Rows[num2][IdFiledName].ToString(), outTableName, inTableName, PidFiledName, IdFiledName, al_old_id, al_old_pid, al_New_ID);
}
}
}
public static void InsertAndUpdateData(string outTableName,string inTableName,string IdFiledName,string fromID,string inID,string PidFiledName)
{
string strsql = "";
object objMax = null;
ArrayList al_Old_ID = new ArrayList();//旧ID
ArrayList al_Old_PID = new ArrayList();//旧Pid
ArrayList al_New_ID = new ArrayList();//新ID
#region 父节点操作全过程
strsql = "select * from " + outTableName + " where " + IdFiledName + "=" + fromID;
DataTable dt;
dt = new cc.DBHepler().RunSql(strsql,CommandType.Text,null,null).Tables[0];
/*-----------------------------完成插入--------------------------------*/
for (int num3 = 0; num3 < dt.Rows.Count; num3++)
{
string strFiled = "";
string strValue = "";
for (int colnum = 0; colnum < dt.Columns.Count; colnum++)
{
if (dt.Rows[num3][colnum] != null && !dt.Columns[colnum].ColumnName.ToLower().Equals(IdFiledName))
{
strFiled += dt.Columns[colnum].ColumnName + ",";
strValue += "'" + dt.Rows[num3][colnum] + "',";
}
}
string strFilter = "";
if(strFiled.Length>0&&strValue.Length>0)
strFilter = "(" + strFiled.Substring(0, strFiled.Length - 1) + ") values(" + strValue.Substring(0, strValue.Length - 1) + ")";
SqlParameter[] strparams1 = new SqlParameter[] {
new cc.DBHepler().MakeParam("@tabName",SqlDbType.Char,50,ParameterDirection.Input,inTableName),
new cc.DBHepler().MakeParam("@Filter1",SqlDbType.Char,3000,ParameterDirection.Input,strFilter)
};
objMax = new cc.DBHepler().RunSqlRetObj("proc_insert", CommandType.StoredProcedure, null, strparams1);
}
/*-----------------------------完成更新--------------------------------*/
SqlParameter[] straparams = new SqlParameter[] {
new cc.DBHepler().MakeParam("@tabName",SqlDbType.Char,50,ParameterDirection.Input,inTableName),
new cc.DBHepler().MakeParam("@fid",SqlDbType.Char,50, ParameterDirection.Input,IdFiledName),
new cc.DBHepler().MakeParam("@fpid",SqlDbType.Char,50, ParameterDirection.Input,PidFiledName),
new cc.DBHepler().MakeParam("@id", SqlDbType.Char,4, ParameterDirection.Input,objMax),
new cc.DBHepler().MakeParam("@pid", SqlDbType.Char,4, ParameterDirection.Input,inID)
};
new cc.DBHepler().RunSqlRetNull("proc_update", CommandType.StoredProcedure, null, straparams);
/*------------------------------------------------------------------------*/
#endregion
#region 获取要添加的所有旧ID,旧FID以及添加后的新ID
strsql = "select * from "+outTableName+" where "+PidFiledName+"="+fromID;
dt = new cc.DBHepler().RunSql(strsql, CommandType.Text, null, null).Tables[0];
for (int num2 = 0; num2 < dt.Rows.Count; num2++)
{
al_Old_ID.Add(dt.Rows[num2][IdFiledName]);
al_Old_PID.Add(dt.Rows[num2][PidFiledName]);
string strFiled = "";
string strValue = "";
for (int colnum = 0; colnum < dt.Columns.Count; colnum++)
{
if (dt.Rows[num2][colnum] != null && !dt.Columns[colnum].ColumnName.ToLower().Equals(IdFiledName))
{
strFiled += dt.Columns[colnum].ColumnName + ",";
strValue += "'" + dt.Rows[num2][colnum] + "',";
}
}
string strFilter="";
strFilter = "(" + strFiled.Substring(0, strFiled.Length - 1) + ") values(" + strValue.Substring(0, strValue.Length - 1) + ")";
SqlParameter[] strparams1 = new SqlParameter[] {
new cc.DBHepler().MakeParam("@tabName",SqlDbType.Char,50,ParameterDirection.Input,inTableName),
new cc.DBHepler().MakeParam("@Filter1",SqlDbType.Char,3000,ParameterDirection.Input,strFilter)
};
string fromID1 = dt.Rows[num2][IdFiledName].ToString();
object newID = new cc.DBHepler().RunSqlRetObj("proc_insert", CommandType.StoredProcedure, null, strparams1);
al_New_ID.Add(newID);
SelChildNode(fromID1, outTableName, inTableName, PidFiledName, IdFiledName, al_Old_ID, al_Old_PID, al_New_ID);
}
#endregion
#region 完成更新操作
//foreach (object Old_PID in al_Old_PID)
//{
for (int num4 = 0; num4 < al_Old_PID.Count;num4++ )
{
if (al_Old_ID.IndexOf(al_Old_PID[num4]) != -1)
{
object NEW_PID = al_New_ID[al_Old_ID.IndexOf(al_Old_PID[num4])].ToString();
object NEW_ID = al_New_ID[num4].ToString();
strsql = "update " + inTableName + " set " + PidFiledName + "='" + NEW_PID + "' where " + IdFiledName + "='" + NEW_ID + "'";
new cc.DBHepler().RunSql(strsql, CommandType.Text, null, null);
}
else
{
object NEW_ID = al_New_ID[num4].ToString();
strsql = "update " + inTableName + " set " + PidFiledName + "='" + objMax + "' where " + IdFiledName + "='" + NEW_ID + "'";
new cc.DBHepler().RunSql(strsql, CommandType.Text, null, null);
}
}
//}
#endregion
}
}
}