帮我看一下 操作sqlite的DBhelper是不是有问题

快乐大法师 2011-09-01 01:21:09
public static int ExecuteCommand(string safeSql)
{

try
{
transaction = Connection.BeginTransaction();
SQLiteCommand cmd = new SQLiteCommand(safeSql, Connection);
int result = cmd.ExecuteNonQuery();
transaction.Commit();
return result;
}
catch (Exception ex)
{
transaction.Rollback();
return -1;
}

}




public static SQLiteConnection Connection
{
get
{
string connectionString = DAL.connectionString;
if (connection == null)
{
connection = new SQLiteConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
}

public static int ExecuteCommand(string safeSql)
{

try
{
transaction = Connection.BeginTransaction();
SQLiteCommand cmd = new SQLiteCommand(safeSql, Connection);
int result = cmd.ExecuteNonQuery();
transaction.Commit();
return result;
}
catch (Exception ex)
{
StackFrame fr = new StackFrame(true);
Log.WriteLine(fr.GetMethod().ReflectedType.FullName + "_" + fr.GetMethod().Name, ex.Message + "\r\n" + safeSql, LogLevel.Error);
transaction.Rollback();
return -1;
}

}
public static int ExecuteCommand(string sql, params SQLiteParameter[] values)
{
try
{
transaction = Connection.BeginTransaction();
SQLiteCommand cmd = new SQLiteCommand(sql, Connection);
cmd.Parameters.AddRange(values);
int result = cmd.ExecuteNonQuery();
transaction.Commit();
return result;
}
catch (Exception ex)
{
transaction.Rollback();
return -1;
}

}
public static int GetScalar(string safeSql)
{
try
{
transaction = Connection.BeginTransaction();
SQLiteCommand cmd = new SQLiteCommand(safeSql, Connection);
int result = Convert.ToInt32(cmd.ExecuteScalar());
transaction.Commit();
return result;
}
catch (Exception ex)
{
return -1;
}

}

public static int GetScalar(string sql, params SQLiteParameter[] values)
{
try
{
transaction = Connection.BeginTransaction();
SQLiteCommand cmd = new SQLiteCommand(sql, Connection);
cmd.Parameters.AddRange(values);
int result = Convert.ToInt32(cmd.ExecuteScalar());
transaction.Commit();
return result;
}
catch (Exception ex)
{
return -1;
}
}

public static SQLiteDataReader GetReader(string safeSql)
{
try
{
transaction = Connection.BeginTransaction();
SQLiteCommand cmd = new SQLiteCommand(safeSql, Connection);
SQLiteDataReader reader = cmd.ExecuteReader();
transaction.Commit();
return reader;
}
catch (Exception ex)
{
transaction.Rollback();
return null;
}

}

public static SQLiteDataReader GetReader(string sql, params SQLiteParameter[] values)
{
try
{
transaction = Connection.BeginTransaction();
SQLiteCommand cmd = new SQLiteCommand(sql, Connection);
cmd.Parameters.AddRange(values);
SQLiteDataReader reader = cmd.ExecuteReader();
transaction.Commit();
return reader;
}
catch (Exception ex)
{
transaction.Rollback();
return null;
}

}

public static DataTable GetDataSet(string safeSql)
{
DataTable dt = new DataTable();
try
{
transaction = Connection.BeginTransaction();
DataSet ds = new DataSet();
SQLiteCommand cmd = new SQLiteCommand(safeSql, Connection);
SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
da.Fill(ds);
transaction.Commit();
return ds.Tables[0];
}
catch (Exception ex)
{
transaction.Rollback();
return dt;
}

}
public static DataTable GetDataSet(string sql, params SQLiteParameter[] values)
{
DataTable dt = new DataTable();
try
{
transaction = Connection.BeginTransaction();
DataSet ds = new DataSet();
SQLiteCommand cmd = new SQLiteCommand(sql, Connection);
cmd.Parameters.AddRange(values);
SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
da.Fill(ds);
transaction.Commit();
return ds.Tables[0];
}
catch (Exception ex)
{
transaction.Rollback();
return dt;
}

}
...全文
112 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2011-09-01
  • 打赏
  • 举报
回复
执行结束后,应该关闭连接
快乐大法师 2011-09-01
  • 打赏
  • 举报
回复


public static int ExecuteCommand(string safeSql)
{

try
{
transaction = Connection.BeginTransaction();
SQLiteCommand cmd = new SQLiteCommand(safeSql, Connection);
int result = cmd.ExecuteNonQuery();
transaction.Commit();
return result;
}
catch (Exception ex)
{
transaction.Rollback();
return -1;
}





里边用不用加Connection.close()啊

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧