gpt4 book ai didi

c# - SQLite数据读取器

转载 作者:行者123 更新时间:2023-12-02 03:54:53 24 4
gpt4 key购买 nike

在我的 C# 应用程序中,以下代码面临问题,用于从数据库中删除项目,

if (orderedRelationSet.RemoveRelation(relation) != true)
{
TouchServer.Log(Logger.MessageType.Error, 0, OrderedRelationSet.error_msg + "Remove relation operation failed");
throw new Exception("remove relation failed");
}



public bool RemoveRelation(Relation relation)
{
Relation relationToRemove = null;
relationToRemove = relation;

int roweffected = 0;
int flg_delete = 0;

int ordinal_source = 0;

if (relationToRemove != null)
{

SQLiteDataReader dr_readtype = db.ExecuteSQL("select typeid from item where id=" + relation.ThingId + "");
try
{
dr_readtype.Read();
type_id = Convert.ToInt32(dr_readtype[0]);
}
catch (Exception)
{
}
finally
{
dr_readtype.Close();
dr_readtype.Dispose();

}

SQLiteDataReader dr_ordinal = db.ExecuteSQL("select ordinal from relation where parent_itemid=" + relation.SourceThingId + " and child_itemid= " + relation.ThingId + "");
try
{
dr_ordinal.Read();
ordinal_source = Convert.ToInt32(dr_ordinal[0]);
}
catch (Exception)
{
}
finally
{
dr_ordinal.Close();
dr_ordinal.Dispose();
}


if (flg_delete == 0 || db.currentUser.UserName=="System")
{
relations.Remove(relationToRemove);
roweffected = relationToRemove.UnSet();

type_id = 0;
}
}
if (roweffected >= 1)
{

SQLiteDataReader dr_ordinal = db.ExecuteSQL("select ordinal,child_itemid from relation where parent_itemid=" + relation.SourceThingId + " and ordinal > " + ordinal_source + "");
Hashtable list = new Hashtable();
try
{
while (dr_ordinal.Read())
{
list.Add(int.Parse(dr_ordinal[1].ToString()), int.Parse(dr_ordinal[0].ToString()));
//lis1.Add(int.Parse(dr_ordinal[1].ToString()));
}
}
catch (Exception)
{
}
finally
{
dr_ordinal.Close();
dr_ordinal.Dispose()
}
int j = 0;
foreach (int key in list.Keys)
{
int ordi = (int)list[key];
int ordinal_result = ordi - 1;

try
{
string sqlExpr = "update relation set ordinal=@ordinal_result where parent_itemid=@relation_SourceThingId and child_itemid=@key";
SQLiteCommand _updateRelation = new SQLiteCommand();
_updateRelation.CommandText = sqlExpr;
_updateRelation.Parameters.AddWithValue("@ordinal_result", ordinal_result);
_updateRelation.Parameters.AddWithValue("@relation_SourceThingId", relation.SourceThingId);
_updateRelation.Parameters.AddWithValue("@key", key);
int update_sql = db.ExecuteNonQuerySQL(_updateRelation);

}
catch (Exception)
{
}
j++;

}
string sqlExprs = "UPDATE item SET modified =@dates,modifiedby =@currentUser WHERE id =@relation_SourceThingId";
SQLiteCommand _updateItem = new SQLiteCommand();
_updateItem.CommandText = sqlExprs;
_updateItem.Parameters.AddWithValue("@dates", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
_updateItem.Parameters.AddWithValue("@currentUser", db.currentUser.id);
_updateItem.Parameters.AddWithValue("@relation_SourceThingId", relation.SourceThingId);
int affect = db.ExecuteNonQuerySQL(_updateItem);

return true;
}
else
{
return false;
}

flg_delete = 0;
}

这不是删除数据..请帮忙..

最佳答案

你有很多

    catch (Exception)         {         } 

但是消息框里有异常文本

    catch (Exception E)         
{
MessageBox.Show(E.ToString());
}

关于c# - SQLite数据读取器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9739840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com