错误提示:已有打开的与此命令相关联的 DataReader,必须首先将它关闭。
经网络查阅知道,一个connection只能打开一个datareader,程序中定义了一个,而excutenonquery隐式打开一个,所以是两个,并且当前的数据库连接关闭掉后,该 DataReader 才会释放。
会考导入EXCEL时要逐条检查数据有效性,一直到64条记录错误
后来手动将DR关闭就可以了
使用ACCESS数据库一直是到conn.open()这句出错,提示异常信息,后来还是改SQL才会有详细错误提示。
阅读全文 »
浏览[48] 评论[0]
64 位系统遇到未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0
引用:http://www.cftea.com/c/2011/11/ELYL7R3D9K1UB2JD.asp
今天测试别人给的一个工具,用 .Net 写的程序,抛出异常:未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0 提供程序,搞了老半天,不知道什么原因,后来搜过了一下,才发现解决问题的办法是如此简单:
问题主要是由于代码是在32位机器上编译的,而要在我的64位机器上使用。
解决方法:
方法1:编译项目指定目标平台为 x86 就完了,不能用 Any CPU
工程属性 -> 生成 -> 配置管理器 -> 平台 -> 点击 Any Cpu 选项卡 -> 新建 -> 新建平台 ->X86
(Visual Studio 2010 为:工程属性 -> 生成 -> 常规 -> 目标平台 -> x86。Express 版本不具有目标平台选择功能。千一网络编辑注)
方法2:Web 应用程序的话,还可以这样解决:
在对应的 IIS 应用程序池中,“设置应用程序池默认属性”->“常规”->”启用 32 位应用程序”,设置为 True。
浏览[71] 评论[0]
RDLC报表常见错误及处理(都被我遇到了,晕)
1.tablix“Tablix3"引用了无效的 DataSetName "DataSet1"。
设计时要绑定数据源,也就是xsd,那个只是数据结构,没有真实的数据,xsd只是设计时使用,运行时用sqlconnection填dataset传给report
2.在 Web 窗体上报表查看器 Web 控件需要 System.Web.UI.ScriptManager。
解决办法:从工具箱 AJAX Extensions 选项卡中拖一个ScriptManager控件到窗体。
3.调用rdlc好后提示:尚未指定报表定义的来源
增加一句report.ProcessingMode = ProcessingMode.Local;
4.尚未指定报表“report1.rdlc”的报表定义
reportViewer->LocalReport->ReportPath="报表名.rdlc"
阅读全文 »
浏览[192] 评论[0]
C# URL参数传递,判断是否为数字或字符
1.id是数字的判断代码。
int id;
if( int.TryParse( Request.QueryString[ "id" ], out id ) )
{
//已传入合法的数字型id,参数值已保存在id变量中。
//查询数据库,判断代码……
}
else
{
//未传入id参数,或者为无效数字。
}
阅读全文 »
浏览[157] 评论[0]
生成中考体育考试号,要求是相同项目的在一起,便于组织,并且号要随机
USE tyxm
INDEX on bmd+xb+bkxm+cdxm+zxxm+bxxm+STR(RAND()) TAG rand
***建立索引
SET ORDER TO rand
***按索引排序
GO top
yxb=ALLTRIM(xb)
***排序后第一个性别
i=1
SCAN
IF ALLTRIM(xb)<>yxb then
***性别和上一条记录不同后重置i
i=1
yxb=ALLTRIM(xb)
ENDIF
IF ALLTRIM(xb)=='男' then
a='1'
***男生用1开头
ELSE
a='2'
ENDIF
REPLACE tyksh WITH a+SUBSTR(ksh,8,2)+PADL(ALLTRIM(STR(i)),3,'0')
i=i+1
ENDSCAN
SET ORDER TO
***关闭索引
浏览[167] 评论[0]
JQ动态生成的元素绑定事件最好使用.live()方法。
JS动态生成一个按钮:
var tablesubmit = "";
tablesubmit += "<div class='clear'></div><div class='submit topbar'>"
tablesubmit += "<input id='btn_Submit' type='button' value='交 卷' /></div>";
$("#submit").html(tablesubmit);
使用$('#btn_Submit').click(function () {alert('哈哈');}
可是一直弹不出对话框,上网求助,终于高手提供了解决办法
$('#btn_Submit').live('click', function () {alert('哈哈');}
搞定!
浏览[211] 评论[0]
.net2.0中的Json序列化数据
在.net3.0中序列化数据只需引用System.Web.Extensions.dll, 命名空间里引用了System.Web.Script.Serialization
JavaScriptSerializer jss = new JavaScriptSerializer();
jss.Serialize(list);即可!!
但在2.0中没有System.Web.Extensions.dll,所以不能像在3.0里那样用了,我的方法是换一个序列化类,Json.Net支持.net 2.0,进入点击打开链接下载最新的Json.Net解压,然后bin文件夹里会有一个DotNet20文件夹,这就是支持2.0的Json.Net,然后再项目里引用Newtonsoft.Json.dll
再在命名空间里引用Newtonsoft.Json;
然后一句话就可序列化数据了
JsonConvert.SerializeObject(list);



