C#反射生成简单sql语句
static void Main(string[] args) { book book = new book();//实体类 booktest b1 = new booktest(); book.bookid = "1"; book.bookname = "计算机原理"; book.bookprice = 32.04M; string sql = CreateInsertSQL(book); } public static string CreateInsertSQL(book book) { Type type = book.GetType(); PropertyInfo[] props = type.GetProperties(); StringBuilder sb = new StringBuilder(); sb.Append("insert into "+ type.Name+"("); foreach( PropertyInfo prop in props) { string name = prop.PropertyType.FullName; string value = prop.GetValue(book,null) as string; object[] array = prop.GetCustomAttributes(typeof(KEYAttribute),true);//获取属性,判断在sql语句中必须的,比如主键 if (array.Length > 0) { continue; } sb.Append(prop.Name + ","); } sb.Remove(sb.Length - 1, 1); sb.Append(") values("); foreach (PropertyInfo prop in props) { object[] array = prop.GetCustomAttributes(typeof(KEYAttribute), true); if (array.Length > 0) { continue; } sb.Append("@" + prop.Name + ","); } sb.Remove(sb.Length-1,1); sb.Append(")"); return sb.ToString(); }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。