将一个a数据库中的一个表移动到b数据库

如何做到将一个a数据库中的一个表移动到b数据库当中呢?该表只有字段没有记录,b数据库当中没有一张表

3个回答

直接在b数据库用create table建表,a中用drop table删除表。

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复xuzekun12138: http://www.2cto.com/database/201204/126762.html
4 年多之前 回复
xuzekun12138
xuzekun12138 create table teacher select * from test.teacher; 写了这个语句,但是b数据库中建的表主键没了
4 年多之前 回复

数据库右键选项里,任务,导出:可以将一个数据库的表转换成excl. txt等格式;导入:将转换好的文件再导入另一个数据库。

我就是这样的 苦逼啊 90几个表呢

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
程序+数据库表设计(C#)
有一个套餐表,每个套餐的手机号类型不一样,比如 A套餐只能添加 河南省移动,B套餐能添加 河南省外的移动和联通(全国),等…… 一个查询归属地的方法, 如何设计来满足以后套餐中手机类型的多样性, 不知道我表达的清楚不
在VS2010环境下如何将excel数据导入到SQL数据库中的代码
![CSDN移动问答][1] [1]: http://bcs.wenku.bdimg.com/docconvert4706-nj//wk/d2e36548c17a373365b11e782b0a577f/0.png?sign=MBOT:y1jXjmMD4FchJHFHIGN4z:n/PF%2bOLCAUA0l2ARAtwb09UWlms=&time=1382165111&range=0-5575&response-cache-control=max-age=2592000&response-expires=Mon,%2018%20Nov%202013%2013:45:11%20%2b0800 类似于这种的导入方式的代码。有大神吗
前台使用水晶报表的时候弹出数据库登入怎么去除
![CSDN移动问答][1] [1]: http://C:%5CUsers%5CLionheart%20Lang%5CDesktop%5CQQ%E5%9B%BE%E7%89%8720130906154405.jpg 新建了水晶报表之后,前台打开页面,一直报要登入数据库,验证,取消掉么又是正常的,要怎么样才可以取消掉这个弹出框呢?
SQL server 2008R2 自动备份还原
要求: 需要3个脚本或者任务计划, 1:每天定时20:00,从服务器A,备份数据库文件。 2:每天22:00将改天的数据库备份文件,移动到服务器B。 3:每天在服务器B上,对数据库备份文件进行还原。
执行Delect好像未连接上数据库
package edu.jmi.xyh.view; import java.awt.BorderLayout; public class DeleteView extends JFrame { private JPanel contentPane; private JTextField txID; private JTextField txName; private JPasswordField txPw; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { DeleteView frame = new DeleteView(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public DeleteView() { setTitle("\u5220\u9664\u5B66\u751F\u4FE1\u606F"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JLabel label = new JLabel("\u5220 \u9664 \u5B66 \u751F \u4FE1 \u606F"); label.setFont(new Font("宋体", Font.PLAIN, 16)); label.setBounds(140, 22, 147, 15); contentPane.add(label); JLabel lblId = new JLabel("\u7528 \u6237 ID\uFF1A"); lblId.setBounds(95, 55, 69, 15); contentPane.add(lblId); txID = new JTextField(); txID.setBounds(174, 52, 113, 21); contentPane.add(txID); txID.setColumns(10); JLabel label_2 = new JLabel("\u7528 \u6237 \u540D\uFF1A"); label_2.setBounds(95, 98, 66, 15); contentPane.add(label_2); JLabel label_3 = new JLabel("\u5BC6 \u7801\uFF1A"); label_3.setBounds(95, 143, 54, 15); contentPane.add(label_3); txName = new JTextField(); txName.setBounds(174, 95, 113, 21); contentPane.add(txName); txName.setColumns(10); JButton button = new JButton("\u5220\u9664"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String id=txID.getText(); String pw=txPw.getText(); String name=txName.getText(); Student student=new Student(); student.setStuId(id); student.setStuName(name); student.setStuPwd(pw); StudentDao studentDao=new StudentDao(); int result=studentDao.delete(id); if(result==0){ JOptionPane.showMessageDialog(null, "删除成功!"); } else{ JOptionPane.showMessageDialog(null, "删除失败!"); } System.out.println("id="+id+"pw="+pw); } }); button.setBounds(75, 189, 93, 23); contentPane.add(button); JButton button_1 = new JButton("\u53D6\u6D88"); button_1.setBounds(232, 189, 93, 23); contentPane.add(button_1); txPw = new JPasswordField(); txPw.setBounds(174, 140, 113, 21); contentPane.add(txPw); } } package edu.jmi.xyh.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import edu.jmi.xyh.bean.Student; public class StudentDao { //测试用 //ORM object relation mapping hibernate,ibaits //每一条记录映射每一个对象,记录集合映射成对象集合List //Dao data access object //save将一个java对象存储到数据库表中,就是将对象转换为记录 public int save(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库连接 Connection connection=null; try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //字符串拼接 String sql="insert into student(stuId,stuName,stuPwd)values('" +student.getStuId()+"','"+student.getStuName()+"','"+student.getStuPwd()+"')"; //用来在程序中指挥sql命令执行 st.execute(sql); System.out.println(sql); return 0; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ dboperation.closeConnect(connection); } } public int update(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库 Connection connection=null; try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //字符串拼接 String sql="update student set stuName='"+student.getStuName()+ "', stuPwd='"+student.getStuPwd()+"' where stuId='"+ student.getStuId()+"'"; st.execute(sql); System.out.println(sql); return 0; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ dboperation.closeConnect(connection); } } public int delete(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库连接 Connection connection=null; try{ connection=dboperation.getConnection(); String sql="delete from student where stuId='?'"; PreparedStatement pst=connection.prepareStatement(sql); pst.setString(1, student.getStuId()); pst.execute(); /* Statement st=connction.createStatement(); //字符串拼接 String sql="delete from student where Stuid='"+student.getStuid()+"'"; st.execute(sql);*/ System.out.println(sql); return 0; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ dboperation.closeConnect(connection); } } //查询结果放到集合中,集合中的每一个对象都是student <>是泛型 public List<Student> query(){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库 Connection connection=null; List<Student> list = new ArrayList<Student>(); try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //查询语句 String sql="select* from student"; //查询语句执行exuecuteQuery,不是execte,执行后放回结果集resultset,把resultsest变成list,通过遍历实现 ResultSet rs=st.executeQuery(sql); //rs.next向下移动一行,刚开始在第0行。如果该行存在,返回true,否则会返回false, //每一行对应一个student对象,全部记录对应list //getInt,getString,getDate,getBoolean,获取该字段的值 //getInt(1),getInt("stuId") //可能有多条用while,最多用一条用if if(rs.next()){ Student student=new Student(); String stuId=rs.getString("stuId"); String stuName=rs.getString("stuName"); String stuPwd=rs.getString("stuPwd"); student.setStuId(stuId); student.setStuName(stuName); student.setStuPwd(stuPwd); //最后将student对象存放到集合中 list.add(student); } System.out.println(sql); return list; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return null; }finally{ dboperation.closeConnect(connection); } } //重载 public static Student query(String id) { // TODO Auto-generated method stub //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dbOperation=new DBOperation(); //获取数据库连接 Connection connction=null; try{ connction=dbOperation.getConnection(); Statement st=connction.createStatement(); //查询语句 String sql="select * from student where stuid='"+id+"'"; //查询语句执行exuecuteQuery,不是execute,执行后放回结果集resultset,把resultset变成list,通过遍历实现 ResultSet rs=st.executeQuery(sql); //可能有多条用while,最多一条就用if可以了。码农 Student student=null; if(rs.next()){ //如果有记录,新建一个student对象,将查到的结果封装到student对象中。 student=new Student(); String stuId=rs.getString("stuId"); String stuName=rs.getString("stuName"); String stuPwd=rs.getString("stuPwd"); student.setStuId(stuId); student.setStuName(stuName); student.setStuPwd(stuPwd); } return student; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return null; }finally{ dbOperation.closeConnect(connction); } } public static void main(String args[]){ StudentDao studentDao=new StudentDao(); List<Student> list=studentDao.query(); //for each语句 iterator for(Student student:list){ System.out.println(student.getStuName()); } /*Student student=new Student(); student.setStuId("152118130235"); student.setStuName("徐耀辉"); student.setStuPwd("979194874");*/ } public int delete(String id) { // TODO Auto-generated method stub return 0; } }
defaulttablemodel 刷新数据库里的数据
如下图,我页面上有一个刷新按钮,想通过那个按钮在按钮监听事件中,获取result值然后直接刷新列表。现在按钮点了没反应,不知道哪里出了问题![图片说明](https://img-ask.csdn.net/upload/201703/26/1490518781_255645.png) ``` import java.awt.Color; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.List; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.RowSorter; import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; import javax.swing.table.JTableHeader; import javax.swing.table.TableModel; import javax.swing.table.TableRowSorter; import org.springframework.jdbc.core.RowCallbackHandler; import com.tlxx.dao.MaterialDao; import com.tlxx.model.MaterialList; import com.tlxx.util.DbUtil; import com.tlxx.util.StringUtil; public class MaterialsFrm extends javax.swing.JInternalFrame { MaterialDao materialDao = new MaterialDao(); DbUtil dbUtil = new DbUtil(); private JTable Table; String[] COLUMN = { "物料编号", "物料名称", "规格", "包装规格", "产地", "计量单位", "库存", "单价" };// 表格的列 private Object[][] result; private DefaultTableModel model;// 声明定义表格的模型 private JTextField ItmNameTxt; private JTextField ItmIdTxt; /** * Create the frame. */ public MaterialsFrm() { setClosable(true); setIconifiable(true); setFrameIcon(null); this.setLocation(0, 0); setTitle("\u836F\u6750\u5217\u8868"); initComponents(); getContentPane().setLayout(null); } // 搜索框检索查询 private void searchActionPerformed(ActionEvent evt) { String itmName = this.ItmNameTxt.getText(); String itmId = this.ItmIdTxt.getText(); if (StringUtil.isEmpty(itmName) && StringUtil.isEmpty(itmId)) { JOptionPane.showMessageDialog(null, "<html> <font face= '宋体 ' size= '5'> <b>物料名称或编号不能为空!</b> </font> </html> "); return; } MaterialList matlist = new MaterialList(itmId, itmName); try { result = getFileStates(materialDao.search(dbUtil.getCon(), matlist)); if (result.length == 0) { JOptionPane.showMessageDialog(null, "<html> <font face= '宋体 ' size= '5'> <b>不存在该物料,请重新输入!</b> </font> </html>"); } } catch (Exception e) { e.printStackTrace(); JOptionPane.showConfirmDialog(null, "<html> <font face= '宋体 ' size= '5'> <b>查询异常,请重试或联系管理员!</b> </font> </html>"); } } // 刷新物料按钮 private void refreshActionPerformed(ActionEvent evt) { try { result = getFileStates(materialDao.selectMaterial(dbUtil.getCon())); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } model = new DefaultTableModel(result, COLUMN); Table = new JTable(); Table.setModel(model); } private void initComponents() { JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(30, 150, 1300, 538); getContentPane().add(scrollPane); Table = new JTable(); scrollPane.setColumnHeaderView(Table); try { result = getFileStates(materialDao.selectMaterial(dbUtil.getCon())); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } JButton searchButton = new JButton("搜索"); searchButton.setBounds(610, 27, 123, 33); getContentPane().add(searchButton); searchButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { searchActionPerformed(evt); } }); JLabel label_ItemName = new JLabel("物料名称"); label_ItemName.setFont(new Font("宋体", Font.PLAIN, 20)); label_ItemName.setBounds(30, 31, 81, 33); getContentPane().add(label_ItemName); ItmNameTxt = new JTextField(); ItmNameTxt.setBounds(140, 28, 96, 33); getContentPane().add(ItmNameTxt); ItmNameTxt.setColumns(10); JLabel label_ItmID = new JLabel("物料编号"); label_ItmID.setFont(new Font("宋体", Font.PLAIN, 20)); label_ItmID.setBounds(297, 31, 81, 33); getContentPane().add(label_ItmID); ItmIdTxt = new JTextField(); ItmIdTxt.setBounds(406, 28, 96, 33); getContentPane().add(ItmIdTxt); ItmIdTxt.setColumns(10); JButton refreshButton = new JButton("刷新物料"); refreshButton.setBounds(30, 106, 123, 29); getContentPane().add(refreshButton); refreshButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { refreshActionPerformed(evt); } }); // 数字字段需要按照数值类型排序,而不是字符串类型排序。需覆盖DefaultTableModel的getColumnClass方法进行数值排序 model = new DefaultTableModel(result, COLUMN) { public Class getColumnClass(int column) { Class returnValue; if ((column >= 0) && (column < getColumnCount())) { returnValue = getValueAt(0, column).getClass(); } else { returnValue = Object.class; } return returnValue; } }; Table = new JTable() { //表格不允许被编辑 public boolean isCellEditable(int row, int column) { return false; } }; Table.setModel(model); // RowSorter方法进行表格内排序 RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model); Table.setRowSorter(sorter); // Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // 设置表格大小改变自动变化模型 Table.setGridColor(Color.black);// 设置表格中网格线颜色 Table.setFont(new Font("宋体", Font.BOLD, 20));// 设置字体 DefaultTableCellRenderer cr = new DefaultTableCellRenderer();// 设置单元格居中显示 cr.setHorizontalAlignment(SwingConstants.CENTER); Table.setDefaultRenderer(Object.class, cr); JTableHeader tableHeader = Table.getTableHeader(); tableHeader.setReorderingAllowed(false);// 设置表格列不可移动 scrollPane.setViewportView(Table); pack(); } /** * @param args * the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { JFrame.setDefaultLookAndFeelDecorated(true); JDialog.setDefaultLookAndFeelDecorated(true); try { /* * 更改皮肤,点击substance.jar -> 找到org.jvnet.substance.skin这个包 -> * 将下面的SubstanceDustCoffeeLookAndFeel 替换成 * 刚刚打开的包下的任意一个“Substance....LookAndFeel”即可 */ UIManager.setLookAndFeel(new org.jvnet.substance.skin.SubstanceCremeCoffeeLookAndFeel()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } new MaterialsFrm().setVisible(true); } }); } private Object[][] getFileStates(List list) { // 获取二维数组的方法 Object[][] types = new Object[list.size()][8]; for (int i = 0; i < list.size(); i++) { MaterialList type = (MaterialList) list.get(i); types[i][0] = type.getItmID(); types[i][1] = type.getItmName(); types[i][2] = type.getItmSpec(); types[i][3] = type.getPackSpec(); types[i][4] = type.getPlace(); types[i][5] = type.getPrice(); types[i][6] = type.getStock(); types[i][7] = type.getUnit(); } return types; } } ```
SQL Server 2008 r2 查询效率问题(求关注求关注求关注)
我有一张表,共有56个字段。发现以下情况: 1、我在我的开发机执行sql语句 set statistics time on SELECT * FROM [eShop].[dbo].[Product] ![CSDN移动问答][1] (多次执行,时间平均在90-100ms) 2、在服务器上有相同的数据库,相同的表,相同的内容。执行同样SQL语句,执行结果为: ![CSDN移动问答][2] (多次执行,时间平均在250ms) 3、在我的开发机连服务器的数据库,执行该语句,执行结果为: ![CSDN移动问答][3] (多次执行,平均时间只有35ms左右) 以上是现象。 问题是:同样的数据库,同样的表,同样的内容,同样的系统(server 2003),服务器的硬件也并不比我的开发机差,不知道为什么执行时间差这么多? 而在硬件比较差的另一台服务器上用sqlserver2000的数据库查询速度反而更快。不知道是什么原因?有人碰到过吗? ///*************///// 我的开发机profile中![CSDN移动问答][4] 服务器上profile中![CSDN移动问答][5] ///*************///// 数据库版本为sqlserver 2008 R2 ,补丁为sp2。 已经在多台服务器上做过测试,执行时间从七八十毫秒到五六百毫秒不等(有的硬件好的服务器执行时间反而比差的耗时还要长)。 而且就取一百多条数据,怎么会用时这么长呢?sqlserver2005和sqlserver2008 似乎同样有这个问题。而在sqlserver2000上就没有这个问题(不会超过50ms)。 [1]: http://images.cnitblog.com/q/351142/201309/02140530-e8ebab7d97a84d378de70a73fc605eaa.png [2]: http://images.cnitblog.com/q/351142/201309/02141326-f44e0f4b804042d28144d5f80e635576.png [3]: http://images.cnitblog.com/q/351142/201309/02141523-7d5b5aa16ef74ca7bbd006b10129a2dd.png [4]: http://images.cnitblog.com/q/351142/201309/02151608-54d5b272ec534230b61eeb212145dde2.png [5]: http://images.cnitblog.com/q/351142/201309/02151634-17440c8f70eb4b6ca7fac1696488aea0.png
MySQL InnoDB引擎,主键自增的实用性高吗? 主键自增的优点和缺点如何取舍?
在使用InnoDB存储引擎时,如果没有特别的需要,请永远使用一个与业务无关的自增字段作为主键。 经常看到有帖子或博客讨论主键选择问题,有人建议使用业务无关的自增主键,有人觉得没有必要,完全可以使用如学号或身份证号这种唯一字段作为主键。不论支持哪种论点,大多数论据都是业务层面的。如果从数据库索引优化角度看,使用InnoDB引擎而不使用自增主键绝对是一个糟糕的主意。 InnoDB使用聚集索引,数据记录本身被存于主索引(一颗B+Tree)的叶子节点上。这就要求同一个叶子节点内(大小为一个内存页或磁盘页)的各条数据记录按主键顺序存放,因此每当有一条新的记录插入时,MySQL会根据其主键将其插入适当的节点和位置,如果页面达到装载因子(InnoDB默认为15/16),则开辟一个新的页(节点)。 如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页。如下图所示: --- ![https://blog.codinglabs.org/uploads/pictures/theory-of-mysql-index/13.png](https://blog.codinglabs.org/uploads/pictures/theory-of-mysql-index/13.png) --- 这样就会形成一个紧凑的索引结构,近似顺序填满。由于每次插入时也不需要移动已有数据,因此效率很高,也不会增加很多开销在维护索引上。 如果使用非自增主键(如果身份证号或学号等),由于每次插入主键的值近似于随机,因此每次新纪录都要被插到现有索引页得中间某个位置: --- ![https://blog.codinglabs.org/uploads/pictures/theory-of-mysql-index/14.png](https://blog.codinglabs.org/uploads/pictures/theory-of-mysql-index/14.png) 此时MySQL不得不为了将新记录插到合适位置而移动数据,甚至目标页面可能已经被回写到磁盘上而从缓存中清掉,此时又要从磁盘上读回来,这增加了很多开销,同时频繁的移动、分页操作造成了大量的碎片,得到了不够紧凑的索引结构,后续不得不通过OPTIMIZE TABLE来重建表并优化填充页面。 因此,只要可以,请尽量在InnoDB上采用自增字段做主键。 文章资料来自:[https://blog.codinglabs.org/articles/theory-of-mysql-index.html](https://blog.codinglabs.org/articles/theory-of-mysql-index.html "")
请问在C# 中我用N''在数据库里可以执行 为什么在C#中就会报错呢
![图片说明](https://img-ask.csdn.net/upload/201906/18/1560856555_286003.png)![图片说明](https://img-ask.csdn.net/upload/201906/18/1560856568_48315.png) ## # 这是部分存储过程(太长 只贴一部分了)这其实就是U8的客户科目余额表的存储过程 USE [UFDATA_150_2019] GO /****** Object: StoredProcedure [dbo].[gl_assReport] Script Date: 2019-06-18 16:09:51 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[gl_assReport] @tblname NVARCHAR(60) , @iBeginPeriod INT , --月份 @iEndPeriod INT , --月份 @strass NVARCHAR(2000) ,--辅助项,金额9 @whereSql NVARCHAR(2000) ,--过滤条件 @wheresqlcode NVARCHAR(2000) , --科目过滤条件 @bcdc INT ,-- -1 方向 借 1 贷 0 @bVouch BIT, --记账标志11 @citem_class NVARCHAR(10), -- 项目大类 @bDisplayCreditLine bit =0, --信用额度 @sAuth NVARCHAR(4000), --权限字符串 @isshowzeroaccumulation bit=1, @detailedObject nvarchar(100)='', --交叉项 @subtotalitem nvarchar(100)='', --小计项 @collectitem nvarchar(100)='', --汇总项 @isPhone tinyint=0 --@isPhone:1移动报表按期间汇总 AS DECLARE @isUseMultiCurrency AS BIT --是否启用多币种核算 SELECT @isUseMultiCurrency=case when UPPER(cvalue)=N'TRUE' then 1 else 0 end from accinformation where cname=N'isUseMultiCurrency' and csysid=N'GL' --统计项 -- declare @staticsticsItem as nvarchar(100) -- select @staticsticsItem=enumcode from v_aa_enum where EnumName =@statistics and EnumType ='GL_code' -- if @staticsticsItem=N'部门' -- begin -- set @strass=replace(@strass,'department','') -- set @strass ='department,' +@strass --end -- else if @staticsticsItem=N'项目' --begin -- set @strass=replace(@strass,'item','') -- set @strass ='item,' +@strass --end -- else if @staticsticsItem=N'客户' -- begin -- set @strass=replace(@strass,'customer','') -- set @strass ='customer,' +@strass -- end -- else if @staticsticsItem=N'供应商' -- begin --set @strass=replace(@strass,'vendor','') --set @strass ='vendor,' +@strass --end -- --明细对象 -- declare @detailedObjectItem as nvarchar(100) -- declare @tempStr as nvarchar(100) -- select @detailedObjectItem=enumcode from v_aa_enum where EnumName =@detailedObject and EnumType ='gl_code' --print @detailedObjectItem --set @tempStr=substring(@strass,CHARINDEX(',',@strass)+1,LEN(@strass)) --if @detailedObjectItem=N'供应商' -- set @strass=replace(@strass,@tempStr,'vendor') --else if @detailedObjectItem=N'部门' -- set @strass=replace(@strass,@tempStr,'department') --else if @detailedObjectItem=N'项目' -- set @strass=replace(@strass,@tempStr,'department') --else if @detailedObjectItem=N'客户' -- set @strass=replace(@strass,@tempStr,'customer') --else if @detailedObjectItem=N'科目' -- set @strass=replace(@strass,@tempStr,'code') -- --end --默认币种 declare @accid as char(3) set @accid=(select SUBSTRING(DB_NAME(),8,3)) declare @RMB as nvarchar(50) set @RMB=isnull( (select cCurName from ufsystem..UA_Account where cAcc_Id=@accid),N'人民币') --启用日期 declare @dStartDate as datetime set @dStartDate=(select cvalue from accinformation where csysid ='gl' and cname = 'dGLStartDate') declare @AccBeginPeriod as int declare @AccPeriod as int declare @startYear as int if exists(select 1 from ufsystem..ua_period where dbegin <=@dStartDate and dend >= @dStartDate and cacc_id=@accid) select @AccPeriod=iid,@startYear=iyear from ufsystem..ua_period where dbegin <=@dStartDate and dend >= @dStartDate and cacc_id=@accid else select top 1 @AccPeriod=iid,@startYear=iyear from ufsystem..ua_period where cacc_id=@accid order by iyear,iid set @AccBeginPeriod=@AccPeriod set @AccPeriod=convert(int,str(@startYear,4)+(case when @AccPeriod>9 then str(@AccPeriod,2) else '0'+str(@AccPeriod,1) end) ) print @AccPeriod --启用期间 --无起始日期 if right(str(@iBeginPeriod),2)='00' set @iBeginPeriod=@iBeginPeriod+1 declare @regPeriod as int--用来决定取accsum表的期间 IF @bVouch = 1 --如果包含未记账,求最大记账期间 Begin set @regPeriod=(select isnull(max(iyPeriod),convert(int,str(@startYear,4))*100) from gl_accvouch where ibook=1 and iPeriod <13 and iPeriod >0 ) End ELSE set @regPeriod=@iBeginPeriod set @regPeriod=case when @regPeriod=convert(int,str(@startYear,4))*100 then @AccPeriod else @regPeriod end set @regPeriod=case when @regPeriod>@iBeginPeriod then @iBeginPeriod else @regPeriod end --最大使用凭证的期间 可能为 00 if right(str(@regPeriod,9),2)='00' set @regPeriod=@regPeriod+1 --查询起始日期在第二个年度以后 set @regPeriod=case when @iBeginPeriod/100>@regPeriod/100 then @iBeginPeriod/100*100+1 else @regPeriod end print '@regPeriod:'+cast(@regPeriod as nvarchar) DECLARE @withIndex nvarchar(100) --强制使用索引提高效率 set @withIndex=' ' if exists(SELECT * FROM sysindexes WHERE name = N'idx_GL_accvouch_iYPeriod_ibook_iflag_code' and id=object_id('gl_accvouch')) set @withIndex=' with (index(idx_GL_accvouch_iYPeriod_ibook_iflag_code))' --DECLARE @tsqltemptable NVARCHAR(60) DECLARE @sql NVARCHAR(4000) DECLARE @tblnameA NVARCHAR(60) DECLARE @tblnameB NVARCHAR(60) DECLARE @tblnameM NVARCHAR(60) declare @tmpCode nvarchar(60) SET @tblnameA = @tblname + 'a' SET @tblnameB = @tblname + 'b' SET @tblnameM = @tblname + 'M' set @tmpCode=@tblname +'code' set @sql='if not exists(select 1 from tempdb..sysobjects where name='''+@tmpcode+''' and xtype=''u'') select * into tempdb..'+@tmpcode+' from code ' exec(@sql) IF CHARINDEX('tempdb..', @tblnameA) > 0 BEGIN SET @tblnameA = SUBSTRING(@tblnameA, LEN('tempdb..') + 1, LEN(@tblnameA)) END --SET @tsqltemptable = 'tempdb..gl_sqltemptable' SET @sql = ' if exists( select * from tempdb..sysobjects where id=object_id(''' + 'tempdb..' + @tblnameA + ''') and type=''u'') drop table tempdb..' + @tblnameA EXEC(@sql) SET @sql = ' if exists( select * from tempdb..sysobjects where id=object_id(''' + 'tempdb..' + @tblnameB + ''') and type=''u'') drop table tempdb..' + @tblnameB EXEC(@sql) SET @sql = ' if exists( select * from tempdb..sysobjects where id=object_id(''' + 'tempdb..' + @tblnameM + ''') and type=''u'') drop table tempdb..' + @tblnameM EXEC(@sql) set @sql=' if exists( select * from tempdb..sysobjects where id=object_id(''' + 'tempdb..' + @tblname + ''') and type=''u'') drop table tempdb..' + @tblname EXEC(@sql) DECLARE @OldSelectSql AS NVARCHAR(2000) DECLARE @selectSql AS NVARCHAR(2000) DECLARE @selectSqlA AS NVARCHAR(2000) DECLARE @selectSqlAllA AS NVARCHAR(2000) --declare @whereSql as nvarchar(2000) DECLARE @oldGroupbySql AS NVARCHAR(2000) DECLARE @groupbySql AS NVARCHAR(2000) DECLARE @joinonSql AS NVARCHAR(2000) DECLARE @oldjoinonSql AS NVARCHAR(2000) DECLARE @ibanlanceSql AS NVARCHAR(200) DECLARE @ass AS NVARCHAR(50) DECLARE @asscodebegin AS NVARCHAR(50) DECLARE @asscodeend AS NVARCHAR(50) --declare @wheresqlcode as nvarchar(2000) SET @selectSql = ' select ' SET @selectSqlA = ' select ' SET @selectSqlAllA = '' --SET @whereSql = ' where 1=1 ' SET @groupbySql = ' group by ' SET @joinonSql = ' ' set @oldjoinonSql= '' set @whereSql=' where 1=1 ' + @whereSql --set @wheresqlcode='' declare @leftjoinonSql as nvarchar(2000) set @leftjoinonSql =' ' declare @assCount int --显示项个数 set @assCount=0 --declare @subTotalSql nvarchar(2000) --小计更新 declare @subtotalSelectSql nvarchar(2000) --小计字段cdept_id|cdept_id,cperson_id --set @subTotalSql='' set @subtotalSelectSql='' DECLARE sqlcursor CURSOR FOR SELECT ass,asscodeBegin,asscodeEnd FROM f_split(@strass,',') OPEN sqlcursor FETCH NEXT FROM sqlcursor INTO @ass,@asscodebegin,@asscodeend ; WHILE @@FETCH_STATUS = 0 BEGIN set @assCount=@assCount+1 /* SET @subTotalSql = @subTotalSql + CASE WHEN @ass = 'code' THEN ' a.ccode=Null,' WHEN @ass = 'customer' THEN ' a.ccus_id=Null,' WHEN @ass = 'department' THEN ' a.cdept_id=Null,' WHEN @ass = 'person' THEN 'a.cperson_id=Null,' WHEN @ass = 'vendor' THEN 'a.csup_id=Null,' WHEN @ass = ' itemclass ' THEN 'a.citem_class=Null,' WHEN @ass = 'item' THEN 'a.citem_id=Null,' WHEN @ass = 'citem' THEN 'citemccode=Null,' WHEN @ass = 'ccustomer' THEN ' ccccode=Null,' WHEN @ass = 'cvendor' THEN ' cvccode=Null,' WHEN @ass = 'dcustomer' THEN ' cdccode=Null,' WHEN @ass = 'dvendor' THEN ' cdccode=Null,' WHEN @ass = 'groupcode' THEN ' cgroupcode=Null,' WHEN @ass = '' or @ass='ibanlance' THEN '' ELSE 'a.'+@ass+'=Null,' END */ SET @selectSql = @selectSql + CASE WHEN @ass = 'code' THEN ' a.ccode,' WHEN @ass = 'customer' THEN ' a.ccus_id,' WHEN @ass = 'department' THEN ' a.cdept_id,' WHEN @ass = 'person' THEN 'a.cperson_id,' WHEN @ass = 'vendor' THEN 'a.csup_id,' WHEN @ass = ' itemclass ' THEN 'a.citem_class,' WHEN @ass = 'item' THEN 'a.citem_id,' WHEN @ass = 'citem' THEN 'citemccode,' WHEN @ass = 'ccustomer' THEN ' ccccode,' WHEN @ass = 'cvendor' THEN ' cvccode,' WHEN @ass = 'dcustomer' THEN ' cdccode,' WHEN @ass = 'dvendor' THEN ' cdccode,' WHEN @ass = 'groupcode' THEN ' cgroupcode,' WHEN @ass = '' or @ass='ibanlance' THEN '' ELSE 'a.'+@ass+',' END --自定义项小计:@subtotalitem=N'cdefine10' if charindex(','+@ass+',',','+@subtotalitem+',')>0 begin set @subtotalSelectSql = @subtotalSelectSql + replace(@selectSql,'select ','') + '|' print '@subtotalSelectSql:'+@subtotalSelectSql end SET @selectSqlAllA = @selectSqlAllA + CASE WHEN @ass = 'code' THEN ' a.ccode,' WHEN @ass = 'customer' THEN ' a.ccus_id,' WHEN @ass = 'department' THEN ' a.cdept_id,' WHEN @ass = 'person' THEN 'a.cperson_id,' WHEN @ass = 'vendor' THEN 'a.csup_id,' WHEN @ass = ' itemclass ' THEN 'a.citem_class,' WHEN @ass = 'item' THEN 'a.citem_id,' WHEN @ass = 'citem' THEN 'a.citemccode,' WHEN @ass = 'ccustomer' THEN ' a.ccccode,' WHEN @ass = 'cvendor' THEN ' a.cvccode,' WHEN @ass = 'dcustomer' THEN ' a.cdccode,' WHEN @ass = 'dvendor' THEN ' a.cdccode,' WHEN @ass = 'groupcode' THEN ' a.cgroupcode,' WHEN @ass = '' or @ass='ibanlance' THEN '' ELSE 'a.'+@ass+',' END SET @selectSqlA = @selectSqlA + CASE WHEN @ass = 'code' THEN ' a.ccode,' WHEN @ass = 'customer' THEN ' a.ccus_id,' WHEN @ass = 'department' THEN ' a.cdept_id,' WHEN @ass = 'person' THEN 'a.cperson_id,' WHEN @ass = 'vendor' THEN 'a.csup_id,' WHEN @ass = ' itemclass ' THEN 'a.citem_class,' WHEN @ass = 'item' THEN 'a.citem_id,' WHEN @ass = 'citem' THEN (case when @citem_class='ch' then 'cinvccode as citemccode,' else 'citemccode,' end) WHEN @ass = 'ccustomer' THEN ' ccccode,' WHEN @ass = 'cvendor' THEN ' cvccode,' WHEN @ass = 'dcustomer' THEN ' cdccode,' WHEN @ass = 'dvendor' THEN ' cdccode,' WHEN @ass = 'groupcode' THEN ' cgroupcode,' WHEN @ass = '' or @ass='ibanlance' THEN '' ELSE 'a.'+@ass+',' END --set @whereSql=@whereSql + --case --when @ass='ccode' then (case when @asscodebegin='' then '' else ' and ccode>=''' + @asscodebegin +'''' end) --+ (case when @asscodeend='' then '' else ' and ccode<=''' + @asscodeend +'''' end ) + ' ' --when @ass='cus' then (case when @asscodebegin='' then '' else ' and ccus_id>=''' + @asscodebegin + '''' end) --+ (case when @asscodeend='' then '' else ' and ccus_id<=''' + @asscodeend +'''' end ) + ' and ccus_id is not null' --when @ass='dept' then (case when @asscodebegin='' then '' else ' and cdept_id>=''' + @asscodebegin + '''' end ) --+ (case when @asscodeend='' then '' else ' and cdept_id<=''' + @asscodeend end ) + ' and cdept_id is not null' --when @ass='person' then (case when @asscodebegin='' then '' else ' and cperson_id>=''' + @asscodebegin +'''' end ) --+ (case when @asscodeend='' then '' else ' and cperson_id<=' + @asscodeend+'''' end ) + ' and cperson_id is not null' --when @ass='sup' then (case when @asscodebegin='' then '' else ' and csup_id>=' + @asscodebegin+'''' end ) --+ (case when @asscodeend='' then '' else ' and csup_id<=''' + @asscodeend+'''' end ) + ' and csup_id is not null' --when @ass=' itemclass ' then (case when @asscodebegin='' then '' else ' and citem_class=''' + @asscodebegin+'''' end ) --+' and citem_class is not null' --when @ass='itemid' then (case when @asscodebegin='' then '' else ' and citem_id>=''' + @asscodebegin+'''' end ) --+ (case when @asscodeend='' then '' else ' and citem_id<=' + @asscodeend+'''' end ) + ' and citem_id is not null' --else '' --end SET @groupbySql = @groupbySql + CASE WHEN @ass = 'code' THEN ' a.ccode,' WHEN @ass = 'customer' THEN ' a.ccus_id,' WHEN @ass = 'department' THEN ' a.cdept_id,' WHEN @ass = 'person' THEN 'a.cperson_id,' WHEN @ass = 'vendor' THEN 'a.csup_id,' WHEN @ass = ' itemclass ' THEN 'a.citem_class,' WHEN @ass = 'item' THEN 'a.citem_id,' WHEN @ass = 'citem' THEN (case when @citem_class='ch' then 'cinvccode,' else 'citemccode,' end) WHEN @ass = 'ccustomer' THEN ' customer.ccccode,' WHEN @ass = 'cvendor' THEN ' vendor.cvccode,' WHEN @ass = 'dcustomer' THEN ' customer.cdccode,' WHEN @ass = 'dvendor' THEN ' vendor.cdccode,' WHEN @ass = 'groupcode' THEN ' GF_VgroupStruct.cgroupcode,' WHEN @ass = '' or @ass='ibanlance' THEN '' ELSE 'a.'+@ass+',' END SET @whereSql = @whereSql + CASE WHEN @ass = 'customer' THEN ' and not a.ccus_id is Null ' WHEN @ass = 'department' THEN ' and not a.cdept_id is Null ' WHEN @ass = 'person' THEN ' and not a.cperson_id is Null ' WHEN @ass = 'vendor' THEN ' and not a.csup_id is Null ' WHEN @ass = ' itemclass ' THEN ' and not a.citem_class is Null ' WHEN @ass = 'item' or @ass = 'citem' THEN ' and not a.citem_id is Null ' WHEN @ass = 'ccustomer' THEN ' and not customer.ccccode is Null ' WHEN @ass = 'cvendor' THEN ' and not vendor.cvccode is Null ' WHEN @ass = 'dcustomer' THEN ' and not customer.cdccode is Null' WHEN @ass = 'dvendor' THEN ' and not vendor.cdccode is Null' WHEN @ass = '' or @ass='ibanlance' or @ass='code' THEN '' ELSE ' ' END /* SET @wheresqlcode = @wheresqlcode + CASE WHEN @ass = 'customer' THEN ' and code.bcus=1 ' WHEN @ass = 'department' THEN ' and code.bdept=1 and code.bperson=0 ' WHEN @ass = 'person' THEN ' and code.bperson=1 and code.bdept=0 ' WHEN @ass = 'vendor' THEN ' and code.bsup=1 ' WHEN @ass = 'item' THEN ' and code.bitem=1 ' WHEN @ass = 'ccustomer' THEN ' and code.bcus=1 ' WHEN @ass = 'cvendor' THEN ' and code.bsup=1 ' WHEN @ass = 'dcustomer' THEN ' and code.bcus=1 ' WHEN @ass = 'dvendor' THEN ' and code.bsup=1 ' WHEN @ass like 'cdefine%' THEN ' and code.b'+@ass+'=1 ' ELSE '' END --个人,部门同时存在,条件冲突,去掉部门条件 if CHARINDEX('and code.bdept=1 and code.bperson=0', @wheresqlcode)>0 and CHARINDEX('and code.bperson=1 and code.bdept=0', @wheresqlcode)>0 SET @wheresqlcode=Replace(@wheresqlcode,'and code.bdept=1 and code.bperson=0','') */ SET @joinonSql = @joinonSql + CASE WHEN @ass = 'code' THEN ' isnull(a.ccode,'''') = isnull(b.ccode,'''') and' WHEN @ass = 'customer' THEN ' isnull(a.ccus_id,'''') = isnull(b.ccus_id,'''') and' WHEN @ass = 'department' THEN ' isnull(a.cdept_id,'''') = isnull(b.cdept_id,'''') and' WHEN @ass = 'person' THEN ' isnull(a.cperson_id,'''') = isnull(b.cperson_id,'''') and' WHEN @ass = 'vendor' THEN ' isnull(a.csup_id,'''') = isnull(b.csup_id,'''') and' WHEN @ass = ' itemclass ' THEN ' isnull(a.citem_class,'''') = isnull(b.citem_class,'''') and' WHEN @ass = 'item' THEN ' isnull(a.citem_id,'''') = isnull(b.citem_id,'''') and' WHEN @ass = 'citem' THEN ' isnull(a.citemccode,'''') = isnull(b.citemccode,'''') and' WHEN @ass = 'groupcode' THEN ' isnull(a.cgroupcode,'''') = isnull(b.cgroupcode,'''') and' WHEN @ass = 'ccustomer' THEN ' isnull(a.ccccode,'''') = isnull(b.ccccode,'''') and' WHEN @ass = 'cvendor' THEN ' isnull(a.cvccode,'''') = isnull(b.cvccode,'''') and' WHEN @ass = 'dcustomer' or @ass = 'dvendor' THEN ' isnull(a.cdccode,'''') = isnull(b.cdccode,'''') and' WHEN @ass = 'cname' THEN ' isnull(a.cname,'''') = isnull(b.cname,'''') and' WHEN @ass = '' or @ass='ibanlance' THEN '' ELSE ' a.' + @ass + '=b.' + @ass + ' and' END SET @leftjoinonSql = @leftjoinonSql + CASE WHEN @ass = 'ccustomer' and charindex('left join customer on A.ccus_id=customer.ccuscode',@leftjoinonSql)=0 THEN ' left join customer on A.ccus_id=customer.ccuscode' WHEN @ass = 'cvendor' and charindex('left join vendor on A.csup_id=vendor.cvencode',@leftjoinonSql)=0 THEN ' left join vendor on A.csup_id=vendor.cvencode' WHEN @ass = 'dcustomer' and charindex('left join customer on A.ccus_id=customer.ccuscode',@leftjoinonSql)=0 THEN ' left join customer on A.ccus_id=customer.ccuscode ' WHEN @ass = 'dvendor' and charindex('left join vendor on A.csup_id=vendor.cvencode',@leftjoinonSql)=0 THEN ' left join vendor on A.csup_id=vendor.cvencode ' WHEN @ass = 'citem' THEN ' left join '+(case when @citem_class='ch' then 'inventory f on a.citem_id=f.cinvcode' else 'fitemss'+@citem_class+' f on A.citem_id=f.citemcode ' end) WHEN @ass = 'groupcode' THEN ' left join GF_VgroupStruct on A.cdept_id=GF_VgroupStruct.cComCode ' ELSE '' END SET @ibanlanceSql = CASE WHEN @ass = 'ibanlance' THEN ( CASE WHEN @asscodebegin = '' THEN '' ELSE ' and abs(me)>=' + @asscodebegin + '' END ) + ( CASE WHEN @asscodeend = '' THEN '' ELSE ' and abs(me)<=' + @asscodeend + '' END ) + ' ' ELSE '' END FETCH NEXT FROM sqlcursor INTO @ass,@asscodebegin,@asscodeend ; END CLOSE sqlcursor DEALLOCATE sqlcursor print 'selectSql:-'+@selectSql
急!已有PC端程序如何开发手机端APP?
各位大神:   在公司已经开发完成了一个B/S架构的在线学习平台(Java Web项目,使用常见的Struts2+Spring+Hibernate架构,数据库是MSSQL,另外用到了AJAX、JQuery、JSON等等)。现在领导要求分析开发移动端学习平台的可能性和工作量。个人没有做过手机端开发,请教下手机开发的大牛们,在已开发的PC端软件基础上,做手机端APP(安卓和iOS都做)的工作量有多大?至少应该几个人去做(比如是否需要安卓工程师和iOS工程师各一个,还是可以由一个人都做)?谢谢!
我想制作一个电子阅读器用stm32f103rct6,求住制作流程,网上有一个,不是很懂求指教
这是我从网上down的方法,有点不懂,关键就是编程还有MF RC522模块设计,求大虾指教,谢谢 1 硬件设计 1.1 硬件结构设计 RFID阅读器基于STM32单片机设计,芯片型号选择为STM32F103RBT6。该芯片为LQFP64封装, 内部有128 KB Flash和20 KB RAM,采用32位的ARM CortexTM-M3内核, 最高支持主频72 MHz,拥有2个SPI接口、 2个USART接口、1个USB接口、2个I2C接口和7个定时器。支持SWD和JTAG调试模式及IAP和ISP编程。 STM32单片机支持J-Link在线调试,J-Link调试有两种模式:JTAG调试和SWD调试。在线调试的便捷性,可以极大缩短程序的开发周期,提高开发效率。本系统采用的调试模式为SWD模式,只需2根SWDIO和SWCLK信号线,相比JTAG模式更加节约I/O口资源。阅读器的硬件结构框图如图1所示。 1.2 电源模块设计 系统可使用直流电源或电池供电,外部直流电源电压为8.4 V;电池电压为7.2 V,2 600 mA/h的锂电池。电源模块设计原理图如图2所示。 电源模块工作原理:当插座J1连接外部直流电源时,电流可经过D4给电池充电,直流电源经开关JP1连接IRF7404的G极,使IRF7404的D极与S极断开,则系统使用外部直流电源供电;当不使用直流电源、按下开关时,D4可将CD_POWER与电池断开,IRF7404的G极为低电平, IRF7404导通, 则系统使用电池供电。SYS_ POWER电压经过LM2576S-3.3转换为3.3 V为系统的各模块供电。 1.3 MF RC522模块设计 MF RC522是阅读器的读卡芯片,工作频率为13.56 MHz,工作模式支持ISO 14443A标准,芯片内部驱动器可以直接驱动阅读器的天线,无需其他电路。MF RC522具有3种接口模式:SPI接口模式、UART模式和I2C总线模式[3]。其中SPI模式的通信速度最快,可达到10 Mb/s。 MF RC522与主机接口模式有关的两个引脚为IIC和EA:当IIC引脚拉高时,表示当前模式为I2C模式,若IIC引脚为低电平时,再通过EA引脚电平来区分。EA为高电平时,表示SPI模式;为低电平时,则表示UART模式[4]。本设计中MF RC522与MCU采用SPI通信,与AT45DB161共享一个MCU的SPI2接口。 在系统中,MF RC522和天线电路一起作为单独模块使用,以便于更换与维修。天线模块与主板之间通过插座连接。 天线是阅读器中的一个重要组成部分。其作用是向外发射一组固定频率的电磁波,为射频卡提供能量、传递数据。 本系统中使用的是PCB天线,天线的设计关系到阅读器的读写距离,甚至关系到阅读器是否能正常与射频卡通信。RC522的天线设计须注意以下两点:(1)为了让射频卡能获取足够大的能量驱动本身的集成电路,设计天线时应该保证向外辐射足够大的电磁波; (2)为了提高读卡数据的准确性,需要考虑调谐电路的通频带,确保调制信号的准确性。 天线的匹配电路可分为:天线线圈、LC谐振电路和EMC滤波电路。RC522的天线匹配电路如图3所示,其中RQ为品质因素Q的匹配电阻,Lant为天线的电感。 1.4 显示模块设计 阅读器选用2.8英寸的TFT LCD触摸屏。在本系统中移植了GUI模块,使得人机交流界面操作更加便捷、友善。触摸屏为四线电阻屏,使用ADS7843作为A/D转换芯片。ADS7843是内置12位模/数转换、低导通电阻模拟开关的串行接口芯片,模/数转换输出范围0~4 095,工作电压2.7 V~5 V,参考电压VREF为1 V~VCC,转换电压的输入范围为0~VREF,最高转换速率为125 kHz[5]。ADS7843与MCU的接口为SPI1。 驱动层的程序基于硬件平台,主要是为中间服务层提供硬件驱动接口函数,完成底层的硬件操作。编写STM32的内部资源驱动程序时,调用了ST公司的固件库函数。 中间服务层主要是为上层应用程序提供库支持和服务接口。中间服务层的程序在驱动层程序上开发,并封装驱动程序的接口。如FATS文件系统是在AT45DB161的驱动程序上移植,为上层的应用程序提供文件创建、写入、读出、删除等服务;GUI模块是在LCD显示驱动程序上开发,将LCD驱动的画点画线函数封装成不同的控件,在控件上加载相应的数据结构,为界面应用程序提供控件的创建、销毁等操作。 应用层程序是面向用户,通过调用中间服务函数和库函数来完成相应的数据处理和控制功能等。 2.2 Free RTOS实时操作系统 Free RTOS是一个轻量级的操作系统,基本满足较小系统的需要。该操作系统完全免费且源码公开,同时具有可移植、可裁减、调度策略灵活的特点。 在本设计中Free RTOS的任务之间的关系如图5所示。 2.3 GUI模块 GUI模块是一个中间服务层程序,为显示应用程序提供控件显示服务。如控件的显示位置、尺寸、颜色以及控件响应的回调函数入口地址等。在本系统中GUI控件包含有文本框、编辑框、进度条、图像框、下拉列表、按钮等。每个控件都可以注册一个回调函数,这个函数对应了该控件的响应功能函数。 2.4 FAT文件系统 FatFs文件系统是中间服务层程序,建立在AT45DB161驱动程序上,文件系统提供了磁盘I/O接口和应用程序接口。磁盘I/O接口函数位于diskio.c文件,常用的接口函数有读磁盘disk_read()和写磁盘disk_write()。这两个函数分别调用AT45DB161驱动程序的读扇区和写扇区函数。在文件系统中一个扇区的大小为512 B,与AT45DB161的页大小一致。 为了使FatFs文件系统与Windows的文件系统兼容,要使用FAT32格式来格式化磁盘。f_open()函数与f_close()函数必须要成对出现,即打开一个文件操作完成后必须要关闭这个文件。在对文件进行操作前必须先调用f_mount(0,&Fs)函数对工作区进行注册,操作完成后也需要调用f_mount(0,NULL)函数对工作区进行注销。 2.5 MF RC522驱动程序流程 本系统中使用的射频卡为Mifare1 S50,也简称为M1卡,该卡有16个扇区,每个扇区有4个块,每个块可存储16 B的数据。MF RC522对M1卡进行读写控制,分别有寻卡、防碰撞、选卡、认证、读块和写块等过程。 MF RC522驱动程序流程如下: (1)寻卡:寻找感应区内所有符合ISO14443A标准的卡,寻卡成功后,返回卡的类型。 (2)防碰撞:通过防碰撞命令查看多张M1卡之间是否发生碰撞,若发生碰撞,使用防碰撞算法进行处理;若未发生碰撞,则MF RC522与M1卡进行通信,如果通信成功,读出M1卡中的序列号。 (3)选卡:根据M1卡的序列号进行选卡。 (4)密码验证:密码验证模式有验证A密钥和验证B密钥,通过这两种模式来验证块地址、密码和卡片序列号。 (5)读数据块:根据提供的块地址读取块数据。 (6)写数据块:根据提供的块地址写入块数据,操作完成后命令M1卡进入休眠状态。 2.6 AT45DB161D驱动程序 AT45DB161D是一个外部Flash存储器,拥有2 MB的容量,分为4 096个页,可配置为每页512 B,还拥有2个512 B的缓冲区。在主存储器正在编程时,缓冲区允许接收数据,且支持数据流式写入。AT45DB161的初始化包括STM32的引脚配置和SPI2接口配置,初始化之后才能进行读写操作。读写页操作流程如下: (1)读页操作流程 ①检测AT45芯片是否忙。若忙,则继续读忙,直到芯片空闲;若芯片空闲,则执行流程②。 ②向AT45芯片写入命令0x53和页地址。0x53命令是将Flash中整页的数据读到缓冲区1中。 ③向AT45芯片写入命令0xD4和页偏移地址及数据长度。0xD4命令是读缓冲区1中的数据。 ④读页操作完成。 (2)写页操作流程 ①检测AT45芯片是否忙。若忙,则继续读忙,直到芯片空闲;若芯片空闲,则执行流程②。 ②向AT45芯片写入命令0x84、页偏移地址及需要写入的数据。0x84命令是将数据写到缓冲区1中。 ③向AT45芯片写入命令0x83和页地址。0x83命令是将缓冲区1中的数据写到Flash指定的页。使用0x83命令,写入前不需要对页进行擦除操作。 ④写页操作完成。 3 性能测试与实验分析 3.1手持式阅读器的功能测试 需要测试的功能有对M1卡读写、文件读写、与PC机数据通信等功能。为了便于测试上述功能,将本设计应用在校园消费系统上进行测试。测试步骤如下: (1)用串口线将RFID阅读器与PC机相连。运行PC机的上位机程序,设置串口参数为:波特率9 600 b/s,数据位8 bit,停止位1 bit,无校验位,无流控制。 (2)对M1卡读写功能测试。通过上位机软件发送指令和数据至阅读器,阅读器将指定数据写入M1卡。然后再将M1卡数据读出,传回给上位机软件显示,并比较写入数据和读出数据,如图6所示。 (3)文件读写测试。由于读M1卡的数据以文件的形式存放在阅读器的外部Flash中,该Flash由文件系统管理。用USB线连接阅读器和PC机,阅读器以盘符的形式在PC机上显示,从磁盘中将文件复制到PC机上,用上位机软件打开读出软件,记录测试数据。 (4)与PC机数据通信测试。以上两项测试通过则表明阅读器能与PC机进行正常通信。 3.2 性能测试与分析 系统的性能测试主要是锂电池的续航时间及RFID有效读卡距离等。系统性能测试如表1所示。 (1)锂电池的续航时间需要分别测试最长待机时间和连续工作时间。 ①最长待机时间测试:将锂电池充满电,阅读器使用电池供电,将阅读器开机而不使用,记录待机时间。 ②连续工作时间测试:将锂电池充满电,阅读器使用电池供电,编写一个测试程序,让阅读器定时每30 s读取M1卡信息。记录工作时间。 ③用万用表分别测量阅读器的待机消耗电流和工作消耗电流,并记录电流值。 (2)RFID有效读卡距离。将阅读器固定不动,M1卡平行放在阅读器天线平面的正上方200 mm处,将M1卡缓慢向阅读器移动,直到阅读器能正确读取M1卡中数据为止。测量卡与阅读器天线之间的距离并记录数据。 通过对上述的系统功能、性能进行验证,分析实验测出的相应数据,系统的功能基本能达到了初期预设的技术指标。 本文设计的阅读器有良好的人机交流界面,可通过触控操作,显示屏可显示M1卡中存储信息。经过实验证明,在70 mm的范围内能准确读写M1卡中的数据。该阅读器具有超长待机和低功耗的功能。经过实际功能测试,已成功地将该设计应用于校园消费系统。 专注
执行delete没有报错,就是删不掉数据,sql语句也有,求大神
package edu.jmi.xyh.view; import java.awt.BorderLayout; public class DeleteView extends JFrame { private JPanel contentPane; private JTextField txID; private JTextField txName; private JPasswordField txPw; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { DeleteView frame = new DeleteView(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public DeleteView() { setTitle("\u5220\u9664\u5B66\u751F\u4FE1\u606F"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JLabel label = new JLabel("\u5220 \u9664 \u5B66 \u751F \u4FE1 \u606F"); label.setFont(new Font("宋体", Font.PLAIN, 16)); label.setBounds(140, 22, 147, 15); contentPane.add(label); JLabel lblId = new JLabel("\u7528 \u6237 ID\uFF1A"); lblId.setBounds(95, 55, 69, 15); contentPane.add(lblId); txID = new JTextField(); txID.setBounds(174, 52, 113, 21); contentPane.add(txID); txID.setColumns(10); JLabel label_2 = new JLabel("\u7528 \u6237 \u540D\uFF1A"); label_2.setBounds(95, 98, 66, 15); contentPane.add(label_2); JLabel label_3 = new JLabel("\u5BC6 \u7801\uFF1A"); label_3.setBounds(95, 143, 54, 15); contentPane.add(label_3); txName = new JTextField(); txName.setBounds(174, 95, 113, 21); contentPane.add(txName); txName.setColumns(10); JButton button = new JButton("\u5220\u9664"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String id=txID.getText(); String pw=txPw.getText(); String name=txName.getText(); Student student=new Student(); student.setStuId(id); student.setStuName(name); student.setStuPwd(pw); StudentDao studentDao=new StudentDao(); int result=studentDao.delete(id); if(result==0){ JOptionPane.showMessageDialog(null, "删除成功!"); } else{ JOptionPane.showMessageDialog(null, "删除失败!"); } System.out.println("id="+id+"pw="+pw); } }); button.setBounds(75, 189, 93, 23); contentPane.add(button); JButton button_1 = new JButton("\u53D6\u6D88"); button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //生成一个对象 MainView mainView = new MainView(); //隐藏窗口 DeleteView.this.setVisible(false); mainView.setVisible(true); } }); button_1.setBounds(232, 189, 93, 23); contentPane.add(button_1); txPw = new JPasswordField(); txPw.setBounds(174, 140, 113, 21); contentPane.add(txPw); } public void setMainView(MainView mainView) { // TODO Auto-generated method stub } public void setID(Object id) { // TODO Auto-generated method stub } } 2.package edu.jmi.xyh.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import edu.jmi.xyh.bean.Student; public class StudentDao { //测试用 //ORM object relation mapping hibernate,ibaits //每一条记录映射每一个对象,记录集合映射成对象集合List //Dao data access object //save将一个java对象存储到数据库表中,就是将对象转换为记录 public int save(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库连接 Connection connection=null; try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //字符串拼接 String sql="insert into student(stuId,stuName,stuPwd)values('" +student.getStuId()+"','"+student.getStuName()+"','"+student.getStuPwd()+"')"; //用来在程序中指挥sql命令执行 st.execute(sql); System.out.println(sql); return 0; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ dboperation.closeConnect(connection); } } public int update(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库 Connection connection=null; try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //字符串拼接 String sql="update student set stuName='"+student.getStuName()+ "', stuPwd='"+student.getStuPwd()+"' where stuId='"+ student.getStuId()+"'"; st.execute(sql); System.out.println(sql); return 0; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ dboperation.closeConnect(connection); } } public int delete(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库连接 Connection connection=null; try{ connection=dboperation.getConnection(); String sql="delete from student where stuId='?'"; //准备执行sql语句 PreparedStatement pst=connection.prepareStatement(sql); //替换上面的问号 pst.setString(1, student.getStuId()); pst.execute(); /* Statement st=connction.createStatement(); //字符串拼接 String sql="delete from student where Stuid='"+student.getStuid()+"'"; st.execute(sql);*/ //把sql语句打出来 System.out.println(sql); //返回值 return 0; //异常处理 }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ //关闭与数据库连接 dboperation.closeConnect(connection); } } //查询结果放到集合中,集合中的每一个对象都是student <>是泛型 public List<Student> query(){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库 Connection connection=null; List<Student> list = new ArrayList<Student>(); try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //查询语句 String sql="select* from student"; //查询语句执行exuecuteQuery,不是execte,执行后放回结果集resultset,把resultsest变成list,通过遍历实现 ResultSet rs=st.executeQuery(sql); //rs.next向下移动一行,刚开始在第0行。如果该行存在,返回true,否则会返回false, //每一行对应一个student对象,全部记录对应list //getInt,getString,getDate,getBoolean,获取该字段的值 //getInt(1),getInt("stuId") //可能有多条用while,最多用一条用if if(rs.next()){ Student student=new Student(); String stuId=rs.getString("stuId"); String stuName=rs.getString("stuName"); String stuPwd=rs.getString("stuPwd"); student.setStuId(stuId); student.setStuName(stuName); student.setStuPwd(stuPwd); //最后将student对象存放到集合中 list.add(student); } System.out.println(sql); return list; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return null; }finally{ dboperation.closeConnect(connection); } } //重载 public static Student query(String id) { // TODO Auto-generated method stub //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dbOperation=new DBOperation(); //获取数据库连接 Connection connction=null; try{ connction=dbOperation.getConnection(); Statement st=connction.createStatement(); //查询语句 String sql="select * from student where stuid='"+id+"'"; //查询语句执行exuecuteQuery,不是execute,执行后放回结果集resultset,把resultset变成list,通过遍历实现 ResultSet rs=st.executeQuery(sql); //可能有多条用while,最多一条就用if可以了。码农 Student student=null; if(rs.next()){ //如果有记录,新建一个student对象,将查到的结果封装到student对象中。 student=new Student(); String stuId=rs.getString("stuId"); String stuName=rs.getString("stuName"); String stuPwd=rs.getString("stuPwd"); student.setStuId(stuId); student.setStuName(stuName); student.setStuPwd(stuPwd); } return student; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return null; }finally{ dbOperation.closeConnect(connction); } } public static void main(String args[]){ StudentDao studentDao=new StudentDao(); List<Student> list=studentDao.query(); //for each语句 iterator for(Student student:list){ System.out.println(student.getStuName()); } /*Student student=new Student(); student.setStuId("152118130235"); student.setStuName("徐耀辉"); student.setStuPwd("979194874");*/ } public int delete(String id) { // TODO Auto-generated method stub return 0; } }
C++编写移动端的仓储管理系统,可行不?
各位大侠好,现在要做一个项目,做一个仓储管理系统,要求在平板电脑上进行操作, 通过平板查询仓储管理系统上的信息,或者上传信息。同时服务器能通过一些接受到的 指令来通过工业无线以太网发送命令给工厂中的AGV(自动导引小车)。那么整个软件 的架构应该是什么样的?B/S,C/S?关键我想用QT和C++来实现,可行不?求助。。。 谢谢各位了。
chart组件绑定数据(DataBindTable)后无法显示曲线或不能显示所有Series
我用vs2010编写的一个小工具,在利用vs2010附带的chart生成图表时出现无法解决的疑问。databindtable在绑定数据时总是会出现无法显示曲线或者无法绑定的问题,如下描述: 数据库结构: ![CSDN移动问答][1] 列名 数据类型 是否可为NUll id int型 主键标识 false mac_id int false value varchar(MAX) true Hum varchar(MAX) true time smalldatetime 主键 false 两个主键id和time,其中id为标识序列。 测试用的数据如下。 id mac_id Value Hum time 1 101 20 NULL 2013/6/1 0:00:00 2 101 30 10 2013/6/2 0:00:00 3 102 40 10 2013/6/2 0:00:00 4 101 40 15 2013/6/3 0:00:00 5 102 50 20 2013/6/3 0:00:00 6 101 60 20 2013/6/4 0:00:00 代码块: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Chart1.Series.Clear() Using cnn As New SqlConnection("Data Source=my-PC\SQLEXPRESS;Initial Catalog=master;Integrated Security=True") Dim str As String = "SELECT id ,value, Hum, time AS t FROM Test WHERE mac_id = 101 ORDER BY t" Dim cmd As New SqlCommand(str, cnn) cnn.Open() Dim reader As SqlDataReader = cmd.ExecuteReader Me.Chart1.DataBindTable(reader, "t") reader.Close() cnn.Close() For Each x In Me.Chart1.Series x.ChartType = DataVisualization.Charting.SeriesChartType.Spline Next End Using End Sub 运行后结果却只有一条id的。根据databindtable的定义不是应该有id ,value, Hum三条Series么? ![CSDN移动问答][2] 然而 ,如果我将id 排除后,即sql的语句变为 Dim str As String = "SELECT value, Hum, time AS t FROM Test WHERE mac_id = 101 ORDER BY t" **执行后,获得的chartAreas 区域却是一片空白** !! 请问,这种情况是否正常,如何解决问题? [1]: http://c.hiphotos.baidu.com/album/pic/item/b8389b504fc2d5624f655e7ae61190ef76c66c3c.jpg?psign=4f655e7ae61190ef76c6a7efce1b9d16fcfaaf51f3de4804 [2]: http://h.hiphotos.baidu.com/album/pic/item/e4dde71190ef76c668bf75bc9c16fdfaaf51673c.jpg?psign=68bf75bc9c16fdfaaf51f3deb48f8c5495eef01f3a294304
关于如何向Report1.rdlc传值的问题,请高手指点,万分感谢!
Imports System Imports System.Data Imports System.Data.OleDb Public Class Code Private Sub Code_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.ReportViewer1.RefreshReport() ' ​初始化报表 Dim strSQL As String = "Select * From BookView" '数据库查询语句(使用Access数据库) With Me.DataGridView1 '设置DataGridView的一系列属性 .DataSource = GetDat(strSQL).Tables(0) .ReadOnly = True '只读 .RowHeadersWidth = 8 .Columns(0).Width = 96 .Columns(1).Width = 96 .AllowUserToResizeColumns = False '禁止调整列宽 .SelectionMode = DataGridViewSelectionMode.FullRowSelect '选择模式为整行 End With End Sub Private Shared Function GetDat(ByVal strSql As String) As DataSet '数据库连接,建立一个DataSet,返回一个DataSet Dim StrConn As String = "Provider= Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\myTry.mdb" Dim cn As OleDbConnection = New OleDbConnection(StrConn) Dim da As OleDbDataAdapter = New OleDbDataAdapter(strSql, cn) Dim ds As DataSet = New DataSet Try cn.Open() da.Fill(ds) cn.Close() Catch ex As Exception MsgBox(ex.ToString) End Try Return ds End Function Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick Dim IntNum As Integer = e.RowIndex Dim myNum As String = Me.DataGridView1.SelectedRows(IntNum).Cells(0).ToString Dim strSql As String = "Select * From BookCode Where Num = " & myNum Dim myTab As Data.DataTable = GetDat(strSql).Tables(0) '......下面的代码准备将表中的记录传给报表Report1.rdlc,该如何写?谢谢! End Sub End Class ![CSDN移动问答][1] [1]: http://b.hiphotos.baidu.com/zhidao/pic/item/060828381f30e9244156b6464f086e061c95f7d3.jpg
java工作1年要达到什么程度? 51job上很多公司都写工作经验1年,结果投了没反应。
2011/2-至今 陕西、山西XX系统XX模块 共1000万 ◆ 环境与工具:aix、weblogic、java、jsp、jquery、oracle、ssh架构 ◆ 项目简介:山西XX系统XX模块。 ◆ 责任描述: 1 完成XX功能的设计与实现,并完成与XX系统等外部系统的部分接口开发。在开发过程中,首先对业务有了深入理解,使用了JBPM工作流。 2 独立完成陕西XX系统计划进度填报、调整部分等模块的实现。利用第三方包JXL分析用户填写excel中的数据b并校验后导入XX系统的数据库,并将导入数据以页面和报表的形式展现。 3 完成陕西单点登录,组织机构同步等接口开发和调试。开发组织机构同步中。从LDAP数据库中,读出相关数据写入计划管理系统中的数据库。,接口使用中间库和WS的方式交互数据,并完成相关文档。 2010/9-2011/1 移动XX系统接口平台 1000万 ◆ 环境与工具:aix、websphere、java、jsp、jquery、oracle、ssh架构 ◆ 项目简介:采购系统增加接口平台模块,便于对接口进行管理。 ◆ 责任描述: 1 参与XX部分模块的编码。负责使用第三方包dom4j分析xml文件和提供压缩组件接口,以及测试和完成测试文档。 2 全程参与接口平台的设计、开发与调试。学会常用设计模式如何应用到实际项目中,实践概要设计文档、详细设计文档以及UML图。并将自己负责的接口调用成功率等统计模块结合到电子采购平台中。在该系统中采用的log4j,quartz,Aop等技术,我也有了实践经验。
WIN7 32位系统安装Oracle10g 无法出现安装图形界面
![CSDN移动问答][1]![CSDN移动问答][2] [1]: http://C:%5CUsers%5CDONG%5CDesktop%5C%E6%8D%95%E8%8E%B7.JPG [2]: http://C:%5CUsers%5CDONG%5CDesktop%5Cyiyangtu.JPG 今天安装Oracle10g版本的数据库,试过10g与11g版本,系统检查通过后,都是无法显示安装的图形界面,求解,万分感谢。
企业管理软件,单机版,用什么语言合适
一般就用个进销存,做帐,单机C/S版的,最多也只有2,3个用户。类似于华军软件园上试用的那些管理软件。 如果是员工数很多规模很大的企业,我会选择B/S。升级与维护也方便。我们小县城一般也是很小规模的厂子。 那我应该选用什么语言比较合适呢?我用过点.net,java,php,便这几样多数在b/s上比较有优势,但是单机版,b/s没有优势,还是一样要架服务器,据我所知除php倒是可以用一些打包的方法,向导安装,asp,asp.net,j2ee做单机版似乎没有省力多少。.net,java如果要c/s版要安装虚拟机也挺麻烦的。 一般那些桌面版的管理软件,比如医药、餐饮、服饰专卖店、售票等用的,它们是用什么语言写的,delphi,foxpro,vb,pb,VC这些吗?还有没有别的语言可以写c/s管理软件。 [b]问题补充:[/b] to lovewhzlqvc: 对于数据库的操作应该还不及delphi那么方面吧,它似乎做底层一些的开发更好些,是这样吗? 我对这些语言都了解一些,都没有进一步的学习,所以现在要长远的选择好,以后可以精通其一。 delphi人们都说它没落了,这让我有点虚,是我浮躁了。 [b]问题补充:[/b] to lovewhzlqvc: 现在我的问题就是迫切地需要从一门语言来作为突破口,尤其对于编程思想通过这门语言来领会,比如OO,设计模式。 我觉得java语言挺适合学习上面编程思想的,请教java在写好swing swt fx等桌面好,怎么部署可以更方便安装吗,像delphi,vb这类click next就可以的,类似于.net winform在vs中,我打包成msi过,但.net fw太大了,javavm小一点? 我知道点java做桌面似乎不太流行,但我跟某些程序员一样,对win有点排斥,尤其不愿使用盗版win。 [b]问题补充:[/b] to lovewhzlqvc: 对于用java桌面软件,请问有什么好的办法去部署吗? [b]问题补充:[/b] 依照你的提示找出了原文,[url]http://www.blogjava.net/huliqing/archive/2008/04/18/193907.html[/url]。太好了,就像作者所说“Java在我的眼里算是最完美的语言了,也是我最喜爱的语言。”,我也是这么想的。谢谢了。 [b]问题补充:[/b] to andilyliao: 我去年也做过2个winform的,控件加是ado.net用起是的确超爽。可虚拟机还是一个问题,于是我按着jvm打包的思路去网上搜,效果不太满意,有人说fetion也ms为移动制定的framework才20多M,还有一种说法是通过.net framework client profile将多余的类库踢除出去。这些讨论都是通过官网上看来的,从那些mvp的口气中,感觉到.net fw似乎不太开放,不鼓励人们阉割.net fw,他们是盼着这个框架能越来越普及,大家都装完整版的,这样ms在.net的市场又加固了。 你有没有好的对.net framework瘦身方案啊? [b]问题补充:[/b] to andilyliao: 已经看到,回家再回复。下班先 [b]问题补充:[/b] TO andilyliao: .net甚至全体ms产品的开发效率是绝对的王者,这点无可争议。有利也有弊,以至于我用惯了鼠标点点的偷懒方式后,惭惭地就不清楚它背后是怎么实现了,mssql之于mysql就不够明了开放了,比如备份一下数据库,mysql导到文本里,数据库内容一目了解,移植也方便得多。 java,我也是喜欢得不了了,买的书,java是最多的,从语法、算法、web开发,android开发,都有了,如thinking in java,sun-core java,servlet jsp core,oreilly-jsp design,数据结构与算法java描述,android开发范例,java web开发典型模块大全,而其他技术书往往只有一到两本或者纯粹只看网上的资源、电子书等。只是在我现在的技术水平看来,还是仰视中。
130 个相见恨晚的超实用网站,一次性分享出来
相见恨晚的超实用网站 持续更新中。。。
我花了一夜用数据结构给女朋友写个H5走迷宫游戏
起因 又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而 怨气满满! 而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有啥作用。而我答道:能干事情多了,比如写个迷宫小游戏啥的! 当我码完字准备睡觉时:写不好别睡觉! 分析 如果用数据结构与算法造出东西来呢? ...
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
win10系统安装教程(U盘PE+UEFI安装)
一、准备工作 u盘,电脑一台,win10原版镜像(msdn官网) 二、下载wepe工具箱 极力推荐微pe(微pe官方下载) 下载64位的win10 pe,使用工具箱制作启动U盘打开软件, 选择安装到U盘(按照操作无需更改) 三、重启进入pe系统 1、关机后,将U盘插入电脑 2、按下电源后,按住F12进入启动项选择(技嘉主板是F12) 选择需要启...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Linux(服务器编程):15---两种高效的事件处理模式(reactor模式、proactor模式)
前言 同步I/O模型通常用于实现Reactor模式 异步I/O模型则用于实现Proactor模式 最后我们会使用同步I/O方式模拟出Proactor模式 一、Reactor模式 Reactor模式特点 它要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生,有的话就立即将时间通知工作线程(逻辑单元)。除此之外,主线程不做任何其他实质性的工作 读写数据,接受新的连接,以及处...
HAL 硬件抽象层介绍
和你一起终身学习,这里是程序员Android本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:和你一起终身学习,这里是程序员 Android本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:一、HAL 概述一、HAL 概述HAL定义了供硬件供应商实施的标准接口,该接口使Android无需考虑底层驱动程序的实现。使用HA...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
致 Python 初学者们!
作者| 许向武 责编 | 屠敏 出品 | CSDN 博客 前言 在 Python 进阶的过程中,相信很多同学应该大致上学习了很多 Python 的基础知识,也正在努力成长。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 Python 这门编程语言,从2009年开始单一使用 Python 应对所有的开发工作,直至今...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
使用 Angular 打造微前端架构的 ToB 企业级应用
这篇文章其实已经准备了11个月了,因为虽然我们年初就开始使用 Angular 的微前端架构,但是产品一直没有正式发布,无法通过生产环境实践验证可行性,11月16日我们的产品正式灰度发布,所以是时候分享一下我们在使用 Angular 微前端这条路上的心得(踩过的坑)了额,希望和 Angular 社区一起成长一起进步,如果你对微前端有一定的了解并且已经在项目中尝试了可以忽略前面的章节。 什么是微前...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
拿下微软、Google、Adobe,印度为何盛产科技圈 CEO?
作者 | 胡巍巍 出品 | CSDN(ID:CSDNnews) 世界500强中,30%的掌舵人,都是印度人。 是的,你没看错。这是近日《哈佛商业评论》的研究结果。 其中又以微软CEO萨提亚·纳德拉(Satya Nadella)、和谷歌CEO桑达尔·皮查伊(Sundar Pichai,以下简称劈柴)最为出名。 微软CEO萨提亚·纳德拉(Satya Nadella) 其他著名印度...
Linux(内核剖析):19---中断总体概述
一、为什么要引入中断? 任何操作系统内核的核心任务,都包含有对连接到计算机上的硬件设备进行有效管理,如硬盘、蓝光碟机、键盘、鼠标、3D 处理器,以及无线电等。而想要管理这些设备,首先要能和它们互通音信才行。众所周知,处理器的速度跟外围硬件设备的速度往往不在一个数量级上,因此,如果内核采取让处理器向硬件发出一个请求,然后专门等待回应的办法,显然差强人意。既然硬件的响应这么慢,那么内核就应该在此期间...
程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
深度学习笔记------卷积神经网络
深度学习笔记------卷积神经网络
一文带你入门Linux
文章目录1.1 Linux的概述:1.1.1 什么是Linux:1.1.1.1 学习Linux之前先了解Unix1.1.1.2 Linux的概述:1.1.1.3 Linux的历史:1.1.1.4 Linux系统的应用:1.1.1.5 Linux的版本1.1.1.6 Linux的主流版本1.2 Linux的安装:1.2.1 虚拟机安装:1.2.1.1 什么是虚拟机1.2.1.2 安装VmWare1....
普通三本毕业,我怎么一路艰辛进入阿里的
英雄不问出处? 自古以来就有这样一句话,真的英雄不问出处吗?这句话太挫了。普通三本院校的我,大四的时候居然都不知道什么是校招,所以出处太重要了。这也是没有机会参加阿里校招的原因,毕竟校招门槛比社招还是要低的,最重要的是校招进入阿里能让你的起点比别人更高。 有幸可以社招进入阿里,了解了校招的思路,赶紧介绍给学弟们,现在我们三本院校的小学弟今年居然有 3 个人通过了阿里的校招。下面我也把这份宝贵的经...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
强烈推荐10本程序员在家读的书
很遗憾,这个春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终将会...
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
疫情数据接口api
返回json示例 { "errcode":0,//0标识接口正常 "data":{ "date":"2020-01-30 07:47:23",//实时更新时间 "diagnosed":7736,//确诊人数 "suspect":12167,//疑是病例人数 "death":170,//死亡人数 "cur...
智力题(程序员面试经典)
NO.1  有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。 解法 有时候,严格的限制条件有可能反倒是解题的线索。在这个问题中,限制条件是天平只能用一次。 因为天平只能用一次,我们也得以知道一个有趣的事实:一次必须同时称很多药丸,其实更准确地说,是必须从19瓶拿出药丸进行称重。否则,如果跳过两瓶或更多瓶药...
疫情防控,开发者集结出战!
作者 | 屠敏出品 | CSDN(ID:CSDNnews)2020 年伊始,病毒肆虐,人心惶惶。截止北京时间 1 月 31 日 15 时 30 分,全国确诊新型冠状病毒肺炎的数字已达到了...
如果孔子是个程序员,一定是P14
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 近日,研读《史记》,读到孔子跟师襄子学弹琴这一段,颇受启发,整理出来与大家分享,故事讲述了孔子如何学习弹琴,达到登峰造极的地步。仔细想想,其修炼方法,放在学习编程上,乃至学习任何一门技能上,都是相通的。 01 孔子年轻的时候,对音乐产生了极大的兴趣,找到了当时弹琴弹得最牛的师襄子,要拜师学艺,孔子比...
相关热词 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数 c#日期精确到分钟 c#自定义异常必须继承 c#查表并返回值 c# 动态 表达式树 c# 监控方法耗时 c# listbox c#chart显示滚动条
立即提问