现所在公司做项目开发时,经常会自己创建model类,网上的生成器也很多,完全满足自己的不太现实,所以感觉自己做一个更有底气,主要针对过程中的一些语句进行整理,也供其他人学习参考。
连接字符串:
mysql:
string conn = string.Format("Server={0};database={1};Persist Security Info=True;User ID={2};Password={3}", address, dbname, user, pwd); //也可以通过public static string str=""直接确定连接的数据库
sql server:
string conn = string.Format("Server={0};Database={1};integrated security=true;Trusted_Connection=SSPI;uid={2};pwd={3}", address, dbname, user, pwd); //也可以通过public static string str=""直接确定连接的数据库
mysql:
sql = "SHOW DATABASES"; //获取所有数据库(语句1)
sql="SELECT SCHEMA_NAME FROM information_schema.SCHEMATA"; //获取所有数据库(语句2)
sql = "SELECT * FROM information_schema.TABLES WHERE table_schema='" + 数据库名(变量)+ "'"; //获取数据库的表集合
sql = "SELECT * FROM information_schema.columns WHERE TABLE_NAME='" + 表名(变量)+ "' AND TABLE_SCHEMA='" + 数据库名(变量)+ "'"; //获取数据库下表的所有字段集合、注释及字段类型
sql server:
sql = "SELECT * FROM sys.databases where database_id >4"; //这大于4为了排除系统数据库,我这为了仅获取自己创建的数据库
sql = "SELECT * FROM sysobjects WHERE type='U'"; //获取数据库对应的表。这里要注意下,因为获取表要连接到具体的数据库,所以这个只是作为一个变量传递 ,传到执行函数中ExecuteQuery_SQLserver(sql, address, dbname, user, pwd);就可以了
sql = "select a.name,b.name as typename,g.value from syscolumns a left join systypes b on a.xusertype=b.xusertype ";
sql += "inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties' ";
sql += "left join syscomments e on a.cdefault=e.id "; sql += "left join sys.extended_properties g on a.id=g.major_id and a.colid=g.minor_id "; sql += "left join sys.extended_properties f on d.id=f.major_id and f.minor_id=0 where d.name='" + 表名称(变量)+ "'";//上面这个是获取表字段、注释及类型(这个比较麻烦点,可以分开在数据库里面执行,看查出来的是什么表,就懂了)
以上基本上就是类生成器对数据库的一些语句操作,期待纠正。可以留言探讨。谢谢!