62,046
社区成员
发帖
与我相关
我的任务
分享
public DataSet SelectExecute()
{
// 初始化
DataSet ds = new DataSet ();
try
{
// SqlCmd对象为null的场合
if (SqlCmd == null)
{
throw new Exception();
}
SqlDataAdapter sqlDa = new SqlDataAdapter(SqlCmd);
for (int i = 0; i < SqlCmd.Parameters.Count; i++)
{
string param = "null";
if (SqlCmd.Parameters[i].Value != null)
{
param = SqlCmd.Parameters[i].Value.ToString();
}
//Logger.InfoFormat("-- ***** Parameters[{0}]:{1}*****", i, param);
}
// 填充DataTable
sqlDa.Fill(ds);
}
catch (Exception e)
{
throw e;
}
// 返回查询结果
return ds;
}
public static EntityBuilder<Entity> CreateBuilder(IDataRecord reader)
{
EntityBuilder<Entity> result = new EntityBuilder<Entity>();
DynamicMethod method = new DynamicMethod("CreateBuilder", typeof(Entity), new Type[] { typeof(IDataReader) }, typeof(Entity), true);
ILGenerator generator = method.GetILGenerator();
generator.DeclareLocal(typeof(Entity));
generator.Emit(OpCodes.Newobj, typeof(Entity).GetConstructor(Type.EmptyTypes));
generator.Emit(OpCodes.Stloc_0);
MethodInfo getValue = reader.GetType().GetMethod("get_Item", new Type[] { typeof(int) });
for (int i = 0; i < reader.FieldCount; i++)
{
PropertyInfo propertyInfo = typeof(Entity).GetProperty(reader.GetName(i));
if (propertyInfo != null && propertyInfo.GetSetMethod() != null)
{
Label label = generator.DefineLabel();
generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, i);
generator.Emit(OpCodes.Callvirt, reader.GetType().GetMethod("IsDBNull"));
generator.Emit(OpCodes.Brtrue, label);
generator.Emit(OpCodes.Ldloc_0);
generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, i);
generator.Emit(OpCodes.Callvirt, getValue);
generator.Emit(OpCodes.Unbox_Any, reader.GetFieldType(i));
generator.Emit(OpCodes.Callvirt, propertyInfo.GetSetMethod());
generator.MarkLabel(label);
}
}
generator.Emit(OpCodes.Ldloc_0);
generator.Emit(OpCodes.Ret);
result.handler = (Load)method.CreateDelegate(typeof(Load));
return result;
}
protected virtual IList<Entity> GetEntityList(IDataReader dr)
{
IList<Entity> _list = new List<Entity>();
EntityBuilder<Entity> _eb = EntityBuilder<Entity>.CreateBuilder(dr);
while (dr.Read())
{
_list.Add(_eb.Build(dr));
}
dr.Close();
dr.Dispose();
return _list;
}
public virtual IList<Entity> GetAll()
{
string sqlStr = String.Format("Select * from {0}", new Entity().TableName);
Database db = DatabaseFactory.CreateDatabase(new Entity().DataBaseName);
DbCommand cmd = db.GetSqlStringCommand(sqlStr);
IDataReader dr = db.ExecuteReader(cmd);
return GetEntityList(dr);
}
List<Model> ModelList=new List<Model>();
using (IDataReader reader = sqldb.ExecuteReader(Sqldbcomm))
{
while (reader.Read())
{
ModelList.Add(FormatDrToModel(reader));
}
}
private static Model FormatDrToLead(Idatareader dr)
{
Model model=new model();
model.Name=Convert.ToString(dr["Name"])
return model;
}
public class Model
{
private string _name;
public string Name
{
get{}
set{}
}
}
public class msgtbModel
{
private string title;
public string Title
{
get { return title; }
set { title = value; }
}
private string content;
public string Content
{
get { return content; }
set { content = value; }
}
private DateTime posttime;
public DateTime Posttime
{
get { return posttime; }
set { posttime = value; }
}
}
//显示留言
public msgtbModel[] Readmsg()
{
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ToString());
string sqlStr = "select title,content,posttime from msgtb";
SqlDataAdapter sda = new SqlDataAdapter(sqlStr,conn);
DataSet ds = new DataSet();
sda.Fill(ds,"msg");
// ArrayList al = new ArrayList();
msgtbModel[] msgs=new msgtbModel[ds.Tables["msg"].Rows.Count] ;
for (int i=0; i < ds.Tables["msg"].Rows.Count; i++)
{
msgtbModel MM = new msgtbModel();
MM.Title=ds.Tables["msg"].Rows[i]["title"].ToString();
MM.Content = ds.Tables["msg"].Rows[i]["content"].ToString();
MM.Posttime = Convert.ToDateTime(ds.Tables["msg"].Rows[i]["posttime"]);
// al.Add(MM);
msgs[i] = MM;
}
// return (msgtbModel[])(al.ToArray(typeof(msgtbModel)));
return msgs;
}