在数据库中查询没问题,在代码中查询出的结果有两个字段为空值

图片说明
图片说明
图片说明

6个回答

我能告诉你,字段名字拼写错误吗?数据库中的是revevierName , javaBean中的是receiverName

qq_32269293
爪哇岛卖咖啡 非常感谢您的帮助,我要去换副眼镜了
2 年多之前 回复

看下是否有拼写上的错误,类型是否匹配

qq_32269293
爪哇岛卖咖啡 确实是这个错误,感谢您的帮助,也给您拜个早年,大吉大利
2 年多之前 回复

你数据库的字段recevierName,看看你调试的那个receiverName 一个是vier一个是iver

qq_32269293
爪哇岛卖咖啡 感谢您的帮助,因为楼上先回答,所以只能采纳楼上,希望您能理解,没有什么能送给您的,所以在这里提前给您拜个早年,大吉大利
2 年多之前 回复

你java代码里id参数是否没有得到值,如果在sql里硬写入某个特定id试试看。
如果可以就是上述原因。还不可以,检查数据库连接有没有打开。

qq_32269293
爪哇岛卖咖啡 能查出结果,知识receiverName和receiverPhone这两个字段查出为null,在数据库中查出是有结果的
2 年多之前 回复

那么看下你的Order类和数据库表结构映射,类型,属性是否一致

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复十二月的奇迹ing: receiverName这个字段名不一致
2 年多之前 回复
qq_32269293
爪哇岛卖咖啡 数据库中的类型是varchar (20)
2 年多之前 回复
qq_32269293
爪哇岛卖咖啡 private String receiverName;//收货人姓名 private String receiverPhone;//收获人电话
2 年多之前 回复

这两个字段有没有构造函数
get() set()

dang_345X
胆小鬼345X 回复十二月的奇迹ing: 调试跟一下吧,说不定哪个地方就抛异常了
2 年多之前 回复
qq_32269293
爪哇岛卖咖啡 有,能存进去,就证明了javaBean没问题
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
读取几次mysql数据库信息后,前台转圈圈,点击链接跳不过去
这个情况遇到两次,一个是form表单帐号进行ajax判断用户名是否重复,还有个写分页每次从数据库获得查询列表,不知道有人遇到过这个情况没?感觉挺怪的,代码运行没问题,就是进行数据库提取几次数据就出问题了
oracel 数据库和客户端的问题,请大神帮忙看看
数据库安装的是oracle 10g,公司服务器的一个应用程序以前通过oracle10的客户端(ODBC的形式)去访问,但因为某种原因需要将客户端升级为11,不过服务器上现在有两个11的客户端,一个没有卸载工具的,一个是正常的完整版,但是现在能够连通数据库,就是时不时进入网站后,网页只显示一部分,但无法登陆进入网站的这个应用程序,可能是访问不到数据库,需要重启服务器上的IIS才能恢复。代码什么的都没动过,和之前相比只是升级了oracle客户端。 请大神帮忙给看看是什么问题,是asp代码,还是oracle11客户端对应10的数据库问题,或者其他原因,不胜感激!!!
同一个存储过程,在不同数据库(环境相似)中执行时报错
* 用友U8 ERP的账套,通过导出,引入后,生成了一个新的账套数据库。 * 在新账套中有些原本执行成功的存储过程报错了。 * 我在数据库中,做了一个把字符串通过分隔符,分解成表的表值函数。 * 内容如下: ``` GO /****** Object: UserDefinedFunction [dbo].[func_splitid] Script Date: 05/28/2019 14:21:27 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER function [dbo].[func_splitid] (@str varchar(max),@split varchar(10)) RETURNS @t Table (c1 nvarchar(100)) AS BEGIN DECLARE @x XML SET @x = CONVERT(XML,'<items><item id="' + REPLACE(@str, @split, '"/><item id="') + '"/></items>') INSERT INTO @t SELECT x.item.value('@id[1]', 'nvarchar(100)') FROM @x.nodes('//items/item') AS x(item) RETURN END ``` * 然后在其他存储过程中调用时,在原来的账套中可以正常执行,在新账套中报错。 * 代码示例: ``` select * from [dbo].func_splitid((case when 1=1 then '1' else '2' end),'') ``` * 在原始账套中可以正常执行,在新账套中,报'(' 附近有语法错误。 * 如果不使用case判断及括号的情况下,函数是可以正常运行的。只有使用case判断的时候报错。 > 问题找到了,比较了两个数据库的设置,原来是compatibility_level 这个参数不同,大概是兼容性等级。 > 旧数据库是100,新数据是80,执行下面的操作,新数据库也没问题了 ``` alter database basename set compatibility_level=100 ```
数据库 高并发 脏读 多线程
问题一 对于项目中一些对数据库的插入操作,每次插入一条两条,但是频繁,是应该没次请求插入数据时就对数据库直接进行插入操作,还是等到了一定的量对数据库进行一次批量操作。还有就是如果想对数据库进行批量操作,那么之前对的那些插入请求往哪里放,就是之前他请求插入,我肯定要把它存起来,然后在一次性插入,就是这个存起来的步骤是怎么处理的,最好用java 问题二 现在库存里只有一千件商品,同时有一万个人下单,下单那部分代码采用了加锁机制,导致了系统很卡,如过不加锁的话,那么可能会出现只有一千件商品,却有五千人下了单,怎么解决
MySQL数据库中的索引问题
用index加索引,再用show create table命令查看得到的是key,不是index了,这原因是什么。 这两者之间有什么区别没哦? 附上代码: create table tbl01( id int(10), key key_id (id) ); show create table tbl01; CREATE TABLE `tbl01` ( `id` int(10) DEFAULT NULL, KEY `key_id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; create table tbl02( id int(10), index key_id (id) ); show create table tbl02; CREATE TABLE `tbl02` ( `id` int(10) DEFAULT NULL, KEY `key_id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; **另外,在power designer中设置字段上有keys和indexes两个选项,这是有什么区别哦?** 刚入行,望指教
修改MYSQL数据库函数里插入新数据更改插入条件
片段代码如下: IF substring(tmptext1,z,1)<>CHAR(13) AND POSITION('"' IN substring(tmptext1,z,1))<1 AND POSITION('"' IN substring(tmptext1,j,1))<1 AND POSITION(',' IN substring(tmptext1,z,1))<1 AND POSITION(',' IN substring(tmptext1,j,1))<1 AND POSITION(')' IN substring(tmptext1,z,1))<1 AND POSITION(')' IN substring(tmptext1,j,1))<1 THEN SET @createsql = CONCAT("INSERT ignore INTO " , targettable , "(firstname,secondname,id)VALUES('",substring(tmptext1,j,1),"','",substring(tmptext1,z,1),"','",tid,"')"); PREPARE stmt from @createsql; EXECUTE stmt; 现在的是默认插入一行数据,我想修改为firstname,secondname(两个字段集合唯一索引)字段相同的话,id追加到现在的id字段,两个ID之间加个逗号分隔。 ![图片说明](https://img-ask.csdn.net/upload/201910/14/1571044803_840407.png) 目前插入结果是这样的三列,可以看得出firstname和secondname字段多个都是重复的,如“动故”,“动神”,“动明”是重复出现,我想要达到的效果是: ![图片说明](https://img-ask.csdn.net/upload/201910/14/1571044871_640587.png) 也就是“动故”出现一次了,不需要再插入一条数据,只需要更改ID字段就可以,ID字段我设置了最长字符限制,也就是插入10次后就插入不进去数据了,插入语句里添加了ignore,插入不进去也不会报错是不是这样,谢谢。 ![图片说明](https://img-ask.csdn.net/upload/201910/14/1571044933_458071.png) 字段我已经设置为唯一索引,需要还需要补充什么资料,我再添加,谢谢。 问题解决方法参考内容(有内容我也没看明白,大致就是这个意思) https://www.cnblogs.com/kzfbk/p/7780950.html
mfc调用mysql数据库时,如何在listbox上逐行显示调用的数据库的表中的内容呢?
RT。 已经成功实现了在控件上按一下鼠标就能调用指定的数据库。 但是对于调用的数据库中的特定的表如何在listbox上逐行显示还是不知道怎么做。。。 其实已经查了博客园和CSDN等等了,但是没有讲的很清楚的。 唯一一个博客园给了代码,按照他的方法调试了下发现没声明两个变量(不知道啥意思啊) 博客园提供的代码经过我改进后如下,如果有人能看懂,希望能指出问题: (不知道ItemName和nCount分别代表什么,没有声明啊) ``` void CthirdstepDlg::OnBnClickedRealresearch() //按钮button的函数 { // TODO: 在此添加控件通知处理程序代码 //初始化数据库对象 pConn = mysql_init(NULL); //localhost:服务器地址,可以直接填入IP;root:账号; //123:密码;test:数据库名;3306:网络端口 if (!mysql_real_connect(pConn, "localhost", "root", "wtk123", "jeesite", 3306, NULL, 0)) { AfxMessageBox(_T("数据库连接失败!")); return; } else//连接成功则继续访问数据库,之后的相关操作代码基本是放在这里面的 { AfxMessageBox(_T("数据库连接成功!")); UpdateData(true); //设置数据库字符格式,解决中文乱码问题 mysql_query(pConn, "set names 'gb2312'"); int t; // 执行 sql 语句 char research_query[200]={0}; CString choose_name; m_researchname.GetWindowText(choose_name); //获取输入静态文本框的字符串 strcpy(research_query,select_head); strcat(research_query,"zd_resourse"); strcat(research_query," where name like '%"); strcat(research_query,choose_name); strcat(research_query,"%'"); strcat(research_query,""); t = mysql_query(pConn,research_query); res = mysql_store_result(pConn); while (res!=NULL) { if (NULL!=(row=mysql_fetch_row(res))) { if (row[0]!=NULL) { ItemName[nCount++]=row[0];//不知道ItemName和nCount分别代表什么,没有声明啊 m_Filelist.AddString(row[0]); } } else { break; } } // while(row = mysql_fetch_row(res)) // { // printf("%s %s\n",row[1],row[2]); // } mysql_free_result(res); mysql_close(pConn); } } UpdateData(false); mysql_close(pConn);//关闭Mysql连接 } ``` 我的大致思路就是先创建一个空表,然后用for循环从i=0开始,逐行调用AddString函数来显示,然而具体怎么操作就不知道了——希望懂的人能贴一下代码,感激不尽!!!
java以webservice形式向发送远程数据,发送时出现重复数据,如何解决?
我是用java从本地数据库中(oracle)提取数据后,封装,发送给远程服务器,然后远程服务器会返回发送结果代码。 我在主表中的每条数据都有一个字段显示其发送次数,还有一个字段显示发送结果。再有一张结果表,专门存储每条数据每次发送的结果和错误原因等详细信息。两张表是一对多关系。主表对每条数据是唯一的,当发送完,次数字段会增加1,发送结果也会更新 最新一次数据发送的结果。平时数据量小的时候完全没有问题,比如:第一次发送成功后,服务器返回1,代表发送成功。如果再发,服务器那边会校验已经发送过这条数据,就会返回2,代表数据以存在,况且我发送前有校验,当前数据如果在主表中结果字段里是1的,就不再发送。 我的程序是通过计划任务运行批处理自动执行的,平时都没问题。但有时候,似乎是当数据量大的时候,会出现一条数据同时重复发送了两次。查询主表和结果表后显示:主表发送次数字段为2,结果字段为1(成功),也就是这条数据在同一时间重复发送了两次,第二次是成功发送的。再查询结果表后,也发现有两条信息,每次的返回结果都为1,这两次的发送时间是一模一样的,例如都是05:02:13 (五时2分13秒),也就是两次都成功发送了。 按理说跑着一个程序,不该另外出现一个一模一样的进程重复一起运行和发送啊,但数据确实是重复发送出去了,服务器那边也收到了两条一模一样的数据,因为发送频率是同一时刻,所以那边校验都没起上作用,有用的话第二次肯定返回结果代码2。我觉得是不是缓存问题呢?又或者是同步什么的,我发送的那个方法一直是synchronization来修饰了的。求解决办法。不甚感激啊。
jdbc连接数据库,可以加载驱动,数据库内却取不到值(NullPointException)?
我用两种途径连接数据库,一种是:<br> ![图片说明](https://img-ask.csdn.net/upload/201911/04/1572862039_634364.png)<br> 这一种应该没问题 <br><br> 但是在另一种途径遇到了以下问题:<br> ![图片说明](https://img-ask.csdn.net/upload/201911/04/1572862594_438226.jpg)<br><br> //以下是异常信息: 第一次提问,请问还需要什么信息orz <br><br> ----------------- 换了个电脑 代码进行修改之后 项目能够正常运行了 在原来的电脑上仍有以下报错: ```java 数据库驱动加载成功! Exceptionconn java.lang.NullPointerException findall failed at javax.xml.bind.DatatypeConverter.parseHexBinary(DatatypeConverter.java:310) at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4061) at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3157) at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:82) at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3121) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7151) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2478) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2026) at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1687) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1528) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:866) at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:569) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228) at ch04.utils.BookUtils.getConnection(BookUtils.java:20) at ch04.dao.impl.BookDaoImpl.findByAll(BookDaoImpl.java:88) at ch04.service.impl.BookservicesImpl.findByAll(BookservicesImpl.java:38) at ch04.controller.BookAction.showall(BookAction.java:127) at ch04.controller.BookAction.doPost(BookAction.java:46) at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:835) java.lang.NullPointerException at ch04.dao.impl.BookDaoImpl.findByAll(BookDaoImpl.java:92) at ch04.service.impl.BookservicesImpl.findByAll(BookservicesImpl.java:38) at ch04.controller.BookAction.showall(BookAction.java:127) at ch04.controller.BookAction.doPost(BookAction.java:46) at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:835) [] ```
oracle数据库主键有规律的自动生成
前提:使用oracle10g 现在有两个表:dept 和 student dept包括 id length=2(专业编号),name(专业名称) student包括 id length=6(学生编号), name(学生名称), sex(性别) 要求: student 的 id 由数据库自动生成。规则是:入学年份 + 专业编号 + 学号(学号不能大于99) 例:有一个学生,是09年入学的,专业的编号是01,学号是20,那么他的id=090120 问题就是这样,有知道如何解决的朋友请帮忙。如果没明白问题的要求,可以提出,我再追加说明。 [b]问题补充:[/b] 对 蔡华江 (架构师) 2009-12-02 提问的追加: 您所说的问题,我也不清楚如何解决,这个是我面试的一道题。 所以不清楚具体的需求,可能他们不需要做这样的关联吧。 另外,如果有知道如何做的朋友,希望你们在解答的时候把具体的代码帖上来。 因为我对oracle也是知之甚少,所以麻烦各位帮忙实现。 [b]问题补充:[/b] hearken01 兄弟: 你好!很感谢你的回答,我按照你的代码,执行了一边。发现结果的确是按照 我的要求生成的。不过,虽然stu_id按要求生成了,可生成的值还有点问题!希 望你能继续帮我解决下,谢谢个先! 我出现的问题是这样的: 我的dept_h表里有了两条记录 dept_id:10, dept_name:物理;dept_id:20,dept_name:化学 student_h表里有两条记录 stu_id:091001,stu_name:aa; stu_id:091002,stu_name:bb 我执行select f_h('物理') from dual;得到的结果却始终是091002 这是为什么啊,我不时很理解,呵呵。还有,如果你有时间,能把你写的代 码多少加点注释好么,我很少接触oracle,所以不时很懂啊 !! [b]问题补充:[/b] hearken01 (中级程序员) : 谢谢你的回答!可是我把你的代码考到了我的机器上运行,结果生成的函数 有错误!然后我大概看了一下,你两次的代码差异,发现了一些不同,而我又看 不太懂,所以帖出来,向你请教: if stu_id<>0 then if stu_id<10 then stu_v := '0' || stu_id; else stu_v := stu_id; end if; else stu_v := '01'; end if; 这里是不是有些重复阿。。。。。。,还有就是两个select语句出错! 我觉得会不会是咱们的表结构不一样啊,所以咱俩统一一下表结构,然后, 麻烦你再帮我调试一次好不?谢谢啦! 我定义的表结构如下(或者你吧你的表结构帖出来也行啊): /* 专业表 */ CREATE TABLE MYDEPT( MYID NUMBER(2,0) NOT NULL, MYNAME VARCHAR2(40), PRIMARY KEY ("MYID") ); /* 学生表 */ CREATE TABLE MYSTUDENT( MYID NUMBER(6,0) NOT NULL, MYNAME VARCHAR2(40), PRIMARY KEY ("MYID") );
c#winform窗体,将excel表格导入数据库classes表后,怎么处理如下这样的数据
已经把classes表的数据加载到dataGridview中显示如下,怎么写代码把dataGridview里或者数据库里这些数据根据“是否合班”列里的“合班1”判断,将三条数据合成一条,留一条删除两条,班级名连接起来,人数相加,其它数据不变。其它没注明合班的照原样。最后把修改后的数据插入到数据库新表course中用第二个dataGridview显示,求大神们帮忙用代码和操作解决我的这个问题![图片](https://img-ask.csdn.net/upload/201610/28/1477644661_646661.png)
Android数据库SQLite添加数据出现数据显示有误的问题
在我的程序里面,是在点击数据保存按钮的事件中添加了一个saveData函数,用来添加数据,程序在运行之后出现了问题,添加新的数据之后,旧的数据重复出现,以下是代码: ``` btnSave.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ getActivity().runOnUiThread(new Runnable(){ @Override public void run(){ ... saveData(); } }); } }); private void saveData(){ //dbHelper已经声明:private SaveDatabaseHelper dbHelper; SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("data",120); db.insert("Chart",null,values); } ``` 插入一条数据,运行之后,没点击一次按钮,就会出现一个120, ``` _id data 1 120 2 120 ``` 也就是在原来的基础上添加,由于没有添加新的数据,120 没点击一次就会出现一次,不知道怎么去处理这情况 ``` private void saveData(){ //dbHelper已经声明:private SaveDatabaseHelper dbHelper; SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("data",120); db.insert("Chart",null,values); values.clear(); values.put("data",121); db.insert("Chart",null,values); } ``` 添加一条121数据,点击按钮两次,运行结果如下: ``` _id data 1 120 2 120 3 120 4 121 5 120 6 121 ``` 我想实现的是这样的结果,就是在没有添加数据的情况下,只有120一个,添加121之后就只有120 121两个数, ``` _id data 1 120 2 121 ```
Python 使用 openpyxl 将Excel数据 导入MySQL数据库中
最近有个项目需要Python 的openpyxl 插件将Excel数据 导入MySQL数据库中,可是以前都没有接触过Python,所以是个小白。。 下面是Excel和代码 ![图片说明](https://img-ask.csdn.net/upload/201607/20/1468977366_889365.png) Python code: # -*- coding: utf-8 -*- from openpyxl.reader.excel import load_workbook as lw import pymysql db = pymysql.connect("localhost","root","1234","test") #地址,用户名,密码,数据库名 # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() insert_sql = 'insert into employee (LAST_NAME, FIRST_NAME, AGE, SEX, INCOME) values (%s, %s, %s, %s, %s)' wb = lw(filename = 'c:\\test.xlsx') ws = wb.get_sheet_by_name(wb.get_sheet_names()[0]) # <worksheet "data"> rows = ws.max_row # 最大行数 columns = ws.max_column # 最大列数 data = [] for rx in range(1, rows+1): for cx in range(1, columns+1): data.append(str(ws.cell(row=rx, column=cx).value)) cursor.execute(insert_sql, (data[0], data[1], data[2], data[3], data[4])) data = [] db.commit() # 提交 # 关闭两个连接 cursor.close() db.close() ![图片说明](https://img-ask.csdn.net/upload/201607/20/1468977419_592032.jpg) 有一个问题就是,当excel表格里有中文的时候,代码运行就会报错: ![图片说明](https://img-ask.csdn.net/upload/201607/20/1468977385_365133.png) 网上试了很多解码的方法,都没能解决这个问题,而且,从mysql读数据的时候,print出来的中文显示是??(问号),也用了解码的代码了,但是没有解决。。求大神指点我这个小白。。感激不尽~~网上的各种方法都看过了,希望可以针对这个问题作出针对性的回答。 PS:Python 版本:3.5.2
怎么才能有效防止并发情况下创建重复的数据库记录?
在实际开发中,偶尔会碰到有重复的数据库记录产生。比如创建一条记录,条件是该记录不存在。但是同时运行两个这样的动作会造成生成两条记录。如果在代码的层面,比如方法上或者代码段上增加synchronized并不能避免该问题,而且性能还会受到影响。前提是数据库事务隔离级别是读提交,在这样的情况下,后运行的操作,在前面运行的操作没提交事务时,无法读取到已经插入的记录情况。想了很久也没想到什么好的办法,请大家给出出主意。
如何调用新浪API对其微博数据进行挖掘分析
各位大神,菜鸟目前正在进行微博数据挖掘分析的相关项目,刚开始没多久,在此想请教各位,如何在SQL等数据库软件上调用新浪微博API,我已经在新浪微博平台,并下载了相关的SDK包,调用所必需的 app secret,回调地址等都已经有了,现在就是不知道如何在数据库软件上调用数据的具体操作,是通过平台给出的那些接口吗?具体问题如下: 1,如何获取微博内的数据; 2,新浪平台提供的那些接口怎么使用。(PS:关于数据挖掘的算法分析这些以后会逐步解决,现在摆在眼面前的就是这两个问题,如果数据都无法获取,那么挖掘分析更无从谈起!) 我在网上搜索相关的解答,他们只给出了片段的代码,我无法得知具体操作步骤,所以在此求教各位过路大神,帮小弟解决上述两个问题,万分感谢!!!!
新手weka问题,急SOS~~
没做过数据挖掘这方面,但是那边安排了个这方面的活,要求用weka做挖掘,现学了两天半吊子,特来求解各位大神。 问题1:现在遇到问题是挖掘内容大概150w条,在mysql中占400+M.当我用weka从数据库导入时weka就会死掉, 我把jvm内存调到1500M还是崩,再调大了就不允许。是不是和我机子内存有关系,加内存就能解决问题么,有没有别的解决方案,我用的机子内存4G 问题2:我想通过调用weka的api直接把聚类结果拿来直接传到前台做图展示,可是发现weka的clusterResultsToString()方法返回的结果都是比较杂,有没有直接返回聚类名和所占比例的方法函数 问题3:因为公司那边还没给全数据,只是给了数据库表结构和不到1/3的数据,挖的内容是关于产品,产地,产品审批信息状态等等,那边说先编好代码再填数据,一段时间自动根据数据重新挖掘展示,并且要求挖出100~200个可以展示的表,以供他们提供思路上的创新。话说这样怎么挖掘啊,这种展示类的我是不是只能从聚类上下手,关联这部分没数据的话是没法做吧。我太菜求解释。
JSP报错Access denied for user ''@'localhost'
我做了一个登录页面,用标签分成了两个入口,一个是普通用户登录入口,一个是管理员登录入口。 普通用户的登录做好后运行登录了下,完全没问题。 管理员入口我是在同一个登录验证的数据库下新建了一个table,登录验证的页面和后台代码就是直接复制的普通用户验证的,只是改了相应的数据库表和变量,但是运行之后一旦登录就会提示“Access denied for user ''@'localhost' (using password: YES)”,请问为什么会出现这种情况?应该如何解决?
Dreamweaver中应用mysql语句遇到的问题
我在Dreamweaver中新建一个php文件saveaddleibie.php。代码如下: <?php include("conn/conn.php"); mysql_query("insert into tb_type(`id`,`typename`) values ('3','机械')",$conn); ?> 当然conn文件夹下的conn.php文件也写好。用DW打开saveaddleibie.php,按F12运行后,应该向数据库的tb_type表中插入数据。但结果令人无解,只插入成功'id'列的3, 'typename'列的'机械'没插入成功。具体看命令行的查询。如下图: ![图片说明](https://img-ask.csdn.net/upload/201504/16/1429188178_389342.jpg) 但我在命令行中输入语句insert into tb_type(`id`,`typename`) values ('3','机械')后, 两列都能正常插入。请各位大神,我该怎么办才能在用DW的方式正常插入两列数据呢?
如何使用c++通过ADO调用mysql有参存储过程并获取结果集
先放代码,遇到的问题是 调用mysql**有参**存储过程时获取不到结果集 ``` #include <iostream> #include <atlstr.h> #import "MSADO15.DLL" rename_namespace("ADOCG") rename("EOF","EndOfFile") using namespace ADOCG; using namespace std; int main() { try { HRESULT hr = CoInitialize(NULL); assert(SUCCEEDED(hr));//返回值可判断初始化COM是否成功,请用SUCCEEDED来判断 _CommandPtr m_DBCommand; //命令对象 _RecordsetPtr m_DBRecordset; //记录对象 _ConnectionPtr m_DBConnection; //数据对象 //创建对象 m_DBCommand.CreateInstance(__uuidof(Command)); m_DBRecordset.CreateInstance(__uuidof(Recordset)); m_DBConnection.CreateInstance(__uuidof(Connection)); //效验数据 if (m_DBCommand == NULL) throw TEXT("创建 m_DBCommand 对象失败"); if (m_DBRecordset == NULL) throw TEXT("创建 m_DBRecordset 对象失败"); if (m_DBConnection == NULL) throw TEXT("创建 m_DBConnection 对象失败"); CString m_strConnect; //构造连接 m_strConnect.Format(TEXT("Driver={MySQL ODBC 8.0 Unicode Driver};UID=%s;PWD=%s;DataBase=%s;Persist Security Info=True;Server=%s;Port=%d;Option=3"), "hhh", "123456", "Test", "192.168.1.115", 3306); //打开连接 m_DBConnection->Open(_bstr_t(m_strConnect), L"", L"", adConnectUnspecified); m_DBConnection->CursorLocation = adUseClient; m_DBCommand->ActiveConnection = m_DBConnection; assert(SUCCEEDED(hr));//返回值可判断初始化COM是否成功,请用SUCCEEDED来判断 LONG lParameterCount = m_DBCommand->Parameters->Count; if (lParameterCount > 0L) { for (LONG i = lParameterCount; i > 0; i--) { m_DBCommand->Parameters->Delete(i - 1); } } //添加参数 _ParameterPtr Parameter; Parameter = m_DBCommand->CreateParameter("wServerID", adInteger, adParamInput, sizeof(LONG), _variant_t((LONG)0)); m_DBCommand->Parameters->Append(Parameter); Parameter = m_DBCommand->CreateParameter("wMachineID", adInteger, adParamInput, sizeof(LONG), _variant_t((LONG)0)); m_DBCommand->Parameters->Append(Parameter); m_DBCommand->CommandText = "LoadGameRoomItem2"; m_DBCommand->CommandType = adCmdText; m_DBRecordset = m_DBCommand->Execute(NULL, NULL, adCmdStoredProc); long RecordCount = m_DBRecordset->GetRecordCount(); cout << RecordCount << endl; _variant_t DBVarValue; if (m_DBRecordset->EndOfFile != VARIANT_TRUE) { FieldsPtr RecordFields = m_DBRecordset->GetFields(); DBVarValue = RecordFields->GetItem("ServerID")->GetValue(); WORD wValue = DBVarValue; } } catch (_com_error& ComError) { cout << ComError.Description() << endl; } return 0; } ``` 储存过程如下 ``` CREATE DEFINER=`root`@`%` PROCEDURE `LoadGameRoomItem2`( in wServerID INT, in wMachineID INT ) BEGIN SELECT * from gameroominfo; END ``` 目前遇到的问题就是,怎么也获取不到结果集,RecordCount始终为零(强行读取提示“BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。”并不是 显示没有其实有,而是确实没有结果集),但是如果我将参数去掉 ``` //添加参数 // _ParameterPtr Parameter; // Parameter = m_DBCommand->CreateParameter("wServerID", adInteger, adParamInput, sizeof(LONG), _variant_t((LONG)0)); // m_DBCommand->Parameters->Append(Parameter); // Parameter = m_DBCommand->CreateParameter("wMachineID", adInteger, adParamInput, sizeof(LONG), _variant_t((LONG)0)); // m_DBCommand->Parameters->Append(Parameter); CREATE DEFINER=`root`@`%` PROCEDURE `LoadGameRoomItem2`( ) BEGIN SELECT * from gameroominfo; END ``` 那么则可以获得结果集(RecordCount数量为40,if (m_DBRecordset->EndOfFile != VARIANT_TRUE)判断能进去,ServerID也能读取到),我试过在存储过程前面后面分别加一个update判断过是不是存储过程没执行成功,但是不管有参无参存储过程,两个Updata都走到了,而且不管有参无参直接在数据库调用都是有结果集的 数据库日志如下 ``` 190923 15:32:38 7534 Connect hhh@DESKTOP-989OGGH on Test 7534 Query SET NAMES utf8 7534 Query SET character_set_results = NULL 7534 Query SET SQL_AUTO_IS_NULL = 0 7534 Query select database() 7534 Query select database() 7534 Query SELECT @@tx_isolation 7534 Query set @@sql_select_limit=DEFAULT 7534 Query call LoadGameRoomItem2 7534 Quit 190923 15:47:54 7621 Connect hhh@DESKTOP-989OGGH on Test 7621 Query SET NAMES utf8 7621 Query SET character_set_results = NULL 7621 Query SET SQL_AUTO_IS_NULL = 0 7621 Query select database() 7621 Query select database() 7621 Query SELECT @@tx_isolation 7621 Prepare call LoadGameRoomItem2(?, ?) 7621 Query set @@sql_select_limit=DEFAULT 7621 Execute call LoadGameRoomItem2('0', '0') 7621 Close stmt 7621 Quit ``` 困扰小弟好几天了,希望各位神仙大佬能帮帮小弟T_T ----------------------------------编辑分界线-------------------------------- ![图片说明](https://img-ask.csdn.net/upload/201909/23/1569232509_546308.png)![图片说明](https://img-ask.csdn.net/upload/201909/23/1569232516_421262.png) 如图,是要像这样处理一张表的内容的,单单用output参数是做不到的,主要问题在如果不加参数这些东西是可以读出来的,但是加了参数就获取不到结果集了。。。。
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
python学习方法总结(内附python全套学习资料)
不要再问我python好不好学了 我之前做过半年少儿编程老师,一个小学四年级的小孩子都能在我的教学下独立完成python游戏,植物大战僵尸简单版,如果要肯花时间,接下来的网络开发也不是问题,人工智能也可以学个调包也没啥问题。。。。。所以python真的是想学就一定能学会的!!!! --------------------华丽的分割线-------------------------------- ...
python 简易微信实现(注册登录+数据库存储+聊天+GUI+文件传输)
socket+tkinter详解+简易微信实现 历经多天的努力,查阅了许多大佬的博客后终于实现了一个简易的微信O(∩_∩)O~~ 简易数据库的实现 使用pands+CSV实现数据库框架搭建 import socket import threading from pandas import * import pymysql import csv # 创建DataFrame对象 # 存储用户数据的表(...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
Python实例大全(基于Python3.7.4)
博客说明: 这是自己写的有关python语言的一篇综合博客。 只作为知识广度和编程技巧学习,不过于追究学习深度,点到即止、会用即可。 主要是基础语句,如三大控制语句(顺序、分支、循环),随机数的生成,数据类型的区分和使用; 也会涉及常用的算法和数据结构,以及面试题相关经验; 主体部分是针对python的数据挖掘和数据分析,主要先攻爬虫方向:正则表达式匹配,常用数据清洗办法,scrapy及其他爬虫框架,数据存储方式及其实现; 最后还会粗略涉及人工智能领域,玩转大数据与云计算、进行相关的预测和分析。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问