大致如下:
protected void IntoData(string logName)
{
DataTable dtCADType = new DataTable(); //预备的参数
dtCADType = ImportWebsiteLog.GetAllCADType();
.... while (getString != null) //循环体开始
{
......
cadTypeID = this.GetCADTypeID(cadTypeName, dtCADType);
...... } } //循环体中将会用到的方法. 把数据全部取出,放到内存中,不再需要在循环体中每次去查询书了.用DataTable来查
public long GetCADTypeID(string cadTypeName, DataTable dt)
{
long cadTypeID;
StringBuilder strExpr = new StringBuilder();
strExpr.AppendFormat("TypeName = '{0}' ", cadTypeName);
DataRow[] resultRow = dt.Select(CoreUtil.TransToString(strExpr)); //如果查不到,就到表中去添加该字符串的记录
if (resultRow.Count() == 0)
{
ImportWebsiteLog.InsertCADType(cadTypeName, DateTime.Now, DateTime.Now, "初始化");
}
cadTypeID = CoreUtil.TransToLong(resultRow[0][0]); return cadTypeID; }
为了避免,在循环体中每次打开数据库连接,每次去查,所以选择了全部查出放到 DataTbale中.
但是,现在增加了需求:
如果查不到,那么就去对应的维护表中去 Insert一条. 然后得到其ID.那么,现在如何写呢?求助啊~~~~~
protected void IntoData(string logName)
{
DataTable dtCADType = new DataTable(); //预备的参数
dtCADType = ImportWebsiteLog.GetAllCADType();
.... while (getString != null) //循环体开始
{
......
cadTypeID = this.GetCADTypeID(cadTypeName, dtCADType);
...... } } //循环体中将会用到的方法. 把数据全部取出,放到内存中,不再需要在循环体中每次去查询书了.用DataTable来查
public long GetCADTypeID(string cadTypeName, DataTable dt)
{
long cadTypeID;
StringBuilder strExpr = new StringBuilder();
strExpr.AppendFormat("TypeName = '{0}' ", cadTypeName);
DataRow[] resultRow = dt.Select(CoreUtil.TransToString(strExpr)); //如果查不到,就到表中去添加该字符串的记录
if (resultRow.Count() == 0)
{
ImportWebsiteLog.InsertCADType(cadTypeName, DateTime.Now, DateTime.Now, "初始化");
}
cadTypeID = CoreUtil.TransToLong(resultRow[0][0]); return cadTypeID; }
为了避免,在循环体中每次打开数据库连接,每次去查,所以选择了全部查出放到 DataTbale中.
但是,现在增加了需求:
如果查不到,那么就去对应的维护表中去 Insert一条. 然后得到其ID.那么,现在如何写呢?求助啊~~~~~
//是否已有此数据
bool flag = false;
if (判断是否有的条件)
{
SqlDataReader dr = DBB.RunProcGetReader("caozuo 1,'table,'top 1 id','字段名=''" + dt.Rows[i][1].ToString() + "''',''");
while (dr.Read())
{
flag = True; }
dr.Close();
}
else
{
insertid = DBB.GetIDInsert("insert into table(表字段1,字段2,字段3) values('" + dt.Rows[i][1].ToString() + "','" + dt.Rows[i][2].ToString() + "','" + dt.Rows[i][3].ToString() + "') select @@identity");
}
{
long cadTypeID;
StringBuilder strExpr = new StringBuilder();
strExpr.AppendFormat("TypeName = '{0}' ", cadTypeName); DataRow[] resultRow = dt.Select(CoreUtil.TransToString(strExpr)); //如果查不到,就到表中去添加该字符串的记录
if (resultRow.Count() == 0)
{
ImportWebsiteLog.InsertCADType(cadTypeName, DateTime.Now, DateTime.Now, "初始化");
DataRow[] resultRow = dt.Select(CoreUtil.TransToString(strExpr));
}
cadTypeID = CoreUtil.TransToLong(resultRow[0][0]); return cadTypeID; }
//是否已有此数据
bool flag = false;
if (判断是否有的条件)
{
SqlDataReader dr = DBB.RunProcGetReader("caozuo 1,'table,'top 1 id','字段名=''" + dt.Rows[i][1].ToString() + "''',''");//caozuo 1 是一个存储过程,这句就是查询。
while (dr.Read())
{
flag = True; }
dr.Close();
}
else
{
insertid = DBB.GetIDInsert("insert into table(表字段1,字段2,字段3) values('" + dt.Rows[i][1].ToString() + "','" + dt.Rows[i][2].ToString() + "','" + dt.Rows[i][3].ToString() + "') select @@identity");
}
public long GetCADTypeID(string cadTypeName, DataTable dt)
{
long cadTypeID;
StringBuilder strExpr = new StringBuilder();
strExpr.AppendFormat("TypeName = '{0}' ", cadTypeName);
DataRow[] resultRow = dt.Select(CoreUtil.TransToString(strExpr)); //如果查不到,就到表中去添加该字符串的记录
if (resultRow.Count() == 0)
{
ImportWebsiteLog.InsertCADType(cadTypeName, DateTime.Now, DateTime.Now, "初始化");
dt = ImportWebsiteLog.GetAllCADType();
return GetCADTypeID(cadTypeName, dt);
}
cadTypeID = CoreUtil.TransToLong(resultRow[0][0]); return cadTypeID; }