问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

后台用sql server 2008作为数据库,前台用常用的语言(java,vb,c语言,c++

发布网友 发布时间:2022-04-30 23:26

我来回答

4个回答

懂视网 时间:2022-05-01 03:47

<summary> /// 集合写出Xml /// </summary> /// <typeparam name="T"></typeparam> /// <param name="ls"></param> public static void DataToXml<T>(List<T> ls,string path) { XmlDocument xmldoc = new XmlDocument(); //加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?> XmlDeclaration xmldecl; xmldecl = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null); xmldoc.AppendChild(xmldecl); //加入一个根元素 var xmlelem = xmldoc.CreateElement("", "Nodes", ""); xmldoc.AppendChild(xmlelem); //加入另外一个元素 foreach (T s in ls) { XmlNode root = xmldoc.SelectSingleNode("Nodes"); XmlElement xe1 = xmldoc.CreateElement("Node"); foreach (PropertyInfo pi in typeof(T).GetProperties()) { object value = null; if (s != null) { value = pi.GetValue(s, null); XmlElement xesub1 = xmldoc.CreateElement(pi.Name); xesub1.InnerText = value == null ? "" : value.ToString(); xe1.AppendChild(xesub1); root.AppendChild(xe1); } } } //保存创建好的XML文档 xmldoc.Save(path); } View Code 技术分享
/// <summary>
 /// Xml生成实体集合
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="xmlpath"></param>
 /// <returns></returns>
 public static List<T> getxmltomodel<T>(string xmlpath)
 {
  try
  {
  #region 遍历xml
  XmlDocument _xm = new XmlDocument();
  _xm.Load(xmlpath);

  XmlNodeList xmList = _xm.SelectNodes("/pma_xml_export/database/table");
  List<T> _ls = new List<T>();
  foreach (XmlNode pageNode in xmList)
  {

   T _m = Activator.CreateInstance<T>();
   foreach (PropertyInfo pi in typeof(T).GetProperties())
   {

   foreach (XmlNode nd in pageNode.ChildNodes)
   {
    XmlElement element = (XmlElement)nd;
    if (element.GetAttribute("name") == pi.Name)
    {
    object value = null;
    value = element.InnerText;
    Type type = pi.GetType();
    pi.SetValue(_m, Convert.ChangeType(value, pi.PropertyType), null);
    }
   }

   }
   _ls.Add((T)_m);

  }
  #endregion

  return _ls;
  }
  catch
  {
  return null;
  }

 }
View Code

  

  既然登陆成功了,我们就可以将数据库下的所有库和表查询出来并展示给我们进行选择了。
数据库/表的查询展示:

  技术分享

查询所有数据库方法:    

select * from [sysdatabases] order by [name]

查询所有表方法:

select [id], [name] from [sysobjects] where [type] = ‘u‘ order by [name]

  得到数据库的数据后就可以绑定到Tree上了,并绑定点击事件,当点击的时候再展示该库下所有的表,这样就可以选择要操作的表了。

表属性查询方法:

 /// <summary>
 /// 获取表信息
 /// </summary>
 /// <param name="tablename"></param>
 /// <returns></returns>
 public DataTable GetTableInfo(string tablename)
 { try
  {
  string sql = string.Format(@"
SELECT 
 表名 = d.name,--case when a.colorder=1 then d.name else ‘‘ end,
 表说明 = case when a.colorder=1 then isnull(f.value,‘‘) else ‘‘ end,
 字段序号 = a.colorder,
 fieldname = a.name,
 标识 = case when COLUMNPROPERTY( a.id,a.name,‘IsIdentity‘)=1 then ‘√‘else ‘‘ end,
 主键 = case when exists(SELECT 1 FROM sysobjects where xtype=‘PK‘ and parent_obj=a.id and name in (
   SELECT name FROM sysindexes WHERE indid in(
   SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then ‘√‘ else ‘‘ end,
 sqltype = b.name,
 占用字节数 = a.length,
 长度 = COLUMNPROPERTY(a.id,a.name,‘PRECISION‘),
 小数位数 = isnull(COLUMNPROPERTY(a.id,a.name,‘Scale‘),0),
 允许空 = case when a.isnullable=1 then ‘√‘else ‘‘ end,
 默认值 = isnull(e.text,‘‘),
 fieldexplain = isnull(g.[value],‘‘)
FROM 
 syscolumns a
left join 
 systypes b 
on 
 a.xusertype=b.xusertype
inner join 
 sysobjects d 
on 
 a.id=d.id and d.xtype=‘U‘ and d.name<>‘dtproperties‘
left join 
 syscomments e 
on 
 a.cdefault=e.id
left join 
 
 sys.extended_properties g 
on 
 a.id=g.major_id and a.colid=g.minor_id 
left join 
 sys.extended_properties f 
on 
 d.id=f.major_id and f.minor_id=0
where 
 d.name=‘{0}‘ --如果只查询指定表,加上此条件
order by 
 a.id,a.colorder", tablename);
  return Service.Data.SqlHelper.DataTable(sql);
  }
  catch (Exception ex)
  {
  throw (ex);
  }
 }
 }

代码模板:

  模板也是存储在了XML文件里,可以配置多个模板。
生成代码:
  这里用的方法很基本了,简单的循环所有字段信息根据模板预留的占位符进行替换生成,与一些常用的代码生成器的做没法比了,不过本着方便自己的想法,这样的工具还是挺好用的,有空大家也可以学习学习他们的做法也是对自己的知识积累。

//我在替换中使用的一些占位符

[tablename] 可替换表的名称 /**************************/ [list][list]为多字段循环列表 [list=1][/list]多字段循环列表,会自动去掉最后元素的最后一个符号。 /**************************/ 循环体内容中可替换内容有: [fieldname] 字段名称 [sqltype] 字段类型 [fieldexplain] 字段说明 /**************************/ [replace=xxx][/replace]筛选替换循环体内的变量。 xxx可填:sqltype、fieldname、fieldexplain

文档生成:

  后来因为要常看一些表的结构和梳理数据文档所以就弄了一个富文本编辑插件,可以把表的属性生成一个table表格,方便查看,也可以复制到word里面。

  技术分享

知识点:
  1,窗体之间如何互相触发事件刷新数据
    这个工具就两个界面,当主界面main加载的时候会判断是否已登陆了,如果没有登陆就会加载登陆窗体login。在login中登陆成功后会刷新main中的tree。
    实现代码:

    在login中定义事件并在登陆成功后触发事件。

 /// <summary>
 /// 定义登陆成供事件委托
 /// </summary>
 public delegate void LoginSuccess();
 /// <summary>
 /// 定义登陆成功事件
 /// </summary>
 public event LoginSuccess LoginSuccessEvent;
 
 /// <summary>
 /// 触发登陆成功事件
 /// </summary>
 protected virtual void OnLoginSuccessEvent()
 {
  var handler = LoginSuccessEvent;
  if (handler != null) handler();
 }

 private void button1_Click(object sender, EventArgs e)
 {
  this.OnLoginSuccessEvent();
 }

  main在调用login时,绑定事件回调函数。

 private void main_Load(object sender, EventArgs e)
 {
  login lg=new login();
  lg.LoginSuccessEvent += LoginSuccess;
  lg.Show();
 }

 void LoginSuccess()
 {
  textBox1.Text = DateTime.Now.ToString("u");
 }

好了,暂时就总结这么多东西。

 

一个很简单的SqlServer生成常用C#语句工具的诞生

标签:

热心网友 时间:2022-05-01 00:55

1,搭建java开发环境,安装jdk,建议下一个eclipse,。
2,建一个eclipse的java工程
3,下一个sql server 的jdbc驱动,可以去
http://www.microsoft.com/zh-cn/download/details.aspx?id=21599
4,将下载的jar包,放到eclipse工程,将jar包加入到编译路径
5,sql server中任意建一张表,如下代码进行测试,注意url与用户名,密码,修改为你们数据库的url、用户名与密码
import java.sql.*;

/**
* @version 2012-02-22
* @author
*/
public class InsertDemo {
public static void main(String[] args) throws SQLException {

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
//加载数据库引擎,返回给定字符串名的类
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
//test为你的数据库的名称
String user="用户名";
String password="密码";

Connection conn=DriverManager.getConnection(url,user,password);
//连接数据库对象
Statement stmt=conn.createStatement();
//创建SQL命令对象

String query="";//创建表SQL语句
stmt.executeUpdate(query);//执行SQL命令对象

String a="INSERT/DELETE.... INTO/FROM “表名” VALUES(....,...)";
....
....
....
stmt.executeUpdate(a);//执行SQL命令对象

//读取数据
ResultSet rs=stmt.executeQuery("SELECT * FROM “表名”");
//循环输出每一条记录 rs最初指向第一条记录的前面
while(rs.next){

}

最后关闭连接
stmt.close();
con.close();

数据库连接(Connection)是非常稀有的资源,用完后必须马上释放,
如果Connection不能及时正确的关闭将导致系统宕机。
Connection的使用原则是尽量晚创建,尽量早的释放。
}

热心网友 时间:2022-05-01 02:13

真的吗

热心网友 时间:2022-05-01 03:48

在知道的上面,搜索 jdbc sql server 2008
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 求高考语文作文 求人些作文一篇 就是2010年的四川高考的作文题目 谁有2007年、2008年、2009年高考满分作文啊? 韧性作文内容能写什么事例? 做文,北京卷,2019年原创文章“文明的韧性。” tcpip和modbus tcp ip有什么区别 如果两个PLC分别用了两种协议能不能实现通讯? TCP/IP协议的具体内容是什么啊? TCPIP协议族中,网关的作用? TCPIP协议经典教程 tcpip协议族第四版答案为什么只有奇数 我的藏青色的裤子沾上了八四消毒液,还有办法还原吗?都过了一天了 华为mate30pro屏幕滑起来怎么会有一道亮光? 合同的分类方式有哪些 一年级看图说话帮清洁工打扫厕所 什么是要式合同,要式合同主要有哪些? 一年级看图说话呀,敬老院帮老人打扫卫生 如何在手机上复制跟贴 王者荣耀中鲁班七号电玩小子皮肤在游戏中有唱一句:“啦啦啦啦啦啦”,然后后面都是啦,请问这首歌叫什么 鲁班七号的黑桃队长皮肤返场要多少点券? 企业破产资不抵债要承担哪些责任 高考满分作文《追求坚韧》 高二作文生命的韧性800字 竹子的韧性 作文 现在内地居民一年可以去几次澳门?- 问一问 求天津地区比较好的物流公司 有港澳通行证一年可以去几次澳门? 我办港澳通行证办澳门签证一年一次,那我只能一年去一次吗? 目前哪个快递能发天津? 持港澳通行证L签的,一年之内可以去澳门几次? 非广东户籍办理的港澳通行证去澳门一年内有限制次数吗? 办理港澳通行证有限制一年去多少次吗? 关于天津发往全国各地的物流公司 天津武清区 杨村 有几家物流公司 都是什么名字 冰川王子拍到了什么 冰川王子到底是怎么回事 王相军落水事件时间线如何? 学奶茶怎么入手才好? 安徽省2014年基层特定岗位招聘高校毕业生+属于什么性质?是属于公务员吗? 女式手提包的宽面有个小拉链包,背的时候是朝正面背还是反面背? 湖北省扶贫政策的标准?