public class OleDBHelper
{
private static string connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
public OleDBHelper() { }
#region 添加数据
/// <summary>
/// 添加数据
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="p">参数集合</param>
/// <returns>返回指示是否添加成功的布尔值</returns>
public static bool InsertData(string tableName, params OleDbParameter[] parameters)
{
string s;
StringBuilder sql = new StringBuilder(string.Format("insert into [{0}](", tableName));
foreach (OleDbParameter pt in parameters)
{
s = pt.ParameterName;
s = s.Substring(1, s.Length - 1);
sql.Append("[" + s + "],");
}
s = sql.ToString();
sql = new StringBuilder(string.Format("[{0}]) values(", s.Substring(0, s.Length - 1)));
foreach (OleDbParameter pt in parameters)
{
sql.Append(pt.ParameterName + ",");
}
s = sql.ToString();
sql = new StringBuilder(s.Substring(0, s.Length - 1) + ")");
try
{
using (OleDbConnection con = new OleDbConnection(connectionString))
{
con.Open();
OleDbCommand com = new OleDbCommand(sql.ToString(), con);
com.Parameters.AddRange(parameters);
int i = com.ExecuteNonQuery();
com.Parameters.Clear();
if (i == 0)
return false;
return true;
}
}
catch (Exception e)
{
throw e;
}
}
#endregion
------解决方案--------------------------------------------------------
不错,在这个公共类里根据参数自动构造常用SQL代码的思路比较新颖,按这个思路,再配合反射的使用,基本上就是一个ORM的雏形了。
挑毛病的话,就鸡蛋里面挑点骨头吧:
(1) 参数命名不规范:如
- C# code
public static DataTable SelectTableData(string tableName, string rowName1, string rowParameter1, string rowName2, string rowParameter2, string sort, string isDescAsc)
------解决方案--------------------------------------------------------