public string execReader(string sql) { string value = String.Empty; DBUtil.onExecSqlBefore(_CLASS, "execReader", sql); cmd.CommandText = @sql; state = ConnectionState.Executing; using (MySqlDataReader dr = cmd.ExecuteReader(CommandBehavior.Default)) { switch (baseApi.getDataType().ToLower()) { case "json": value = DBUtil.DataReaderToJsonArrayString(dr, baseApi.getReSplit()); break; case "jsonobject": //value = DBUtil.DataReaderToJsonObjectString(dr, baseApi.getReSplit(), ); break; case "ary": case "array": value = DBUtil.DataReaderToArrayString(dr, baseApi.getReSplit()); break; case "html": value = DBUtil.DataReaderToHtml(dr, baseApi.getRSplit(), baseApi.getCSplit(), baseApi.getReSplit()); break; } dr.Close(); } return(value); }
/// <summary> /// 普通执行Sql语句 -- 只适用于update, insert, delete, 存储过程 四种 /// </summary> /// <param name="sql">执行sql语言</param> /// <returns> /// 1: 如果执行成功则返回字符串1 /// 2: 如果执行失败则返回执行失败信息 /// </returns> public override string execTrans(string sql, string dataType, string reSplit, string rSplit, string cSplit) { DBUtil.onExecSqlBefore(_CLASS, "execTrans", sql); MySqlTransaction sqlTrans = null; MySqlConnection connection = getDbConnecton(); string value = String.Empty; try { sqlTrans = connection.BeginTransaction(); // 创建一个执行SQL事务的对象, 开启事务 MySqlCommand cmd = new MySqlCommand(); cmd.Connection = connection; cmd.Transaction = sqlTrans; //将执行事务的对象赋值给sqlCommand cmd.CommandText = @sql; using (IDataReader dr = cmd.ExecuteReader(CommandBehavior.Default)) { switch (dataType.ToLower()) { case "json": value = DBUtil.DataReaderToJsonArrayString(dr, reSplit); break; case "ary": case "array": value = DBUtil.DataReaderToArrayString(dr, reSplit); break; case "html": value = DBUtil.DataReaderToHtml(dr, rSplit, cSplit, reSplit); break; } dr.Close(); } sqlTrans.Commit(); //提交事务 connection.Close(); } catch (Exception ex) { if (sqlTrans != null) { sqlTrans.Rollback(); connection.Close(); } value = Native.getErrorMsg(ex.Message); DBUtil.onExecSqlError(_CLASS, "execTrans", sql, ex.Message); } return(value); }
/// <summary> /// getQueryResultByType: 根据不同的dataType得到相应的查询结果 /// </summary> /// <param name="sql">要执行查询的sql语句</param> /// <param name="dataType">数据类型</param> /// <param name="reSplit">结果集分隔符</param> /// <param name="rSplit">行分隔符</param> /// <param name="cSplit">列分隔符</param> /// <returns>查询结果根据dataType而得到的字符串数据</returns> public override string getQueryResultByType(string sql, string dataType, string reSplit, string rSplit, string cSplit) { string value = String.Empty; DBUtil.onExecSqlBefore(_CLASS, "getQueryResultByType", sql); try { using (MySqlConnection sqlConn = new MySqlConnection(dbInfo.toMyConnectionString())) { sqlConn.Open(); MySqlCommand sqlComm = sqlConn.CreateCommand(); sqlComm.CommandText = sql; using (IDataReader dr = sqlComm.ExecuteReader(CommandBehavior.Default)) { switch (dataType.ToLower()) { case "json": value = DBUtil.DataReaderToJsonArrayString(dr, reSplit); break; case "json-object": value = DBUtil.DataReaderToJsonArrayString(dr, reSplit); break; case "ary": case "array": value = DBUtil.DataReaderToArrayString(dr, reSplit); break; case "html": value = DBUtil.DataReaderToHtml(dr, rSplit, cSplit, reSplit); break; } dr.Close(); } sqlConn.Close(); } } catch (Exception ex) { value = Native.getErrorMsg(ex.Message); DBUtil.onExecSqlError(_CLASS, "getQueryResultByType", sql, ex.Message); } return(value); }