社区
C#
帖子详情
读取ACCESS数据库问题!!!急!!!
laixiang
2003-06-29 01:20:04
在做一个工资管理系统过程中,,调试过程中没有什么问题,但在部分机上运行时,在读取ACCESS数据库中的几个表进行比较同运算时,却出现了“索引和长度只能读取数组内,参数是:length“,,,分析了源程序,发现不了什么问题,请高手帮帮忙1111
...全文
45
7
打赏
收藏
读取ACCESS数据库问题!!!急!!!
在做一个工资管理系统过程中,,调试过程中没有什么问题,但在部分机上运行时,在读取ACCESS数据库中的几个表进行比较同运算时,却出现了“索引和长度只能读取数组内,参数是:length“,,,分析了源程序,发现不了什么问题,请高手帮帮忙1111
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
brightheroes
2003-07-04
打赏
举报
回复
恭喜
laixiang
2003-07-04
打赏
举报
回复
问题解决了:原因是在这里,读取ACCESS97的数据库,字段为:日期时间类型,值为:8:25:00
而读出来的是:1889-12-30 8:25:00
而在使用Substring()时,出现了错误。
laixiang
2003-07-01
打赏
举报
回复
public static bool gykq(string kh,string da)
{
bool f=false;
//int i=0;
int j=0;
int[] myint=new int[10];
string[] zj=new string[4];
string aa=da.Trim()+"-01";
string bb=da.Trim()+"-"+ins.reday(da).Trim();
//DateTime td=Convert.ToDateTime(da);
float jb,zgs,jt;
try
{
OleDbConnection conn = db.gconn(); //gconn():得到连接对象
conn.Open();
string strCom ="select * from 考勤分析表 where 日期 between #"+aa+"# and #"+bb+"# and 卡号='"+kh.Trim()+"'";
OleDbCommand myCommand =new OleDbCommand(strCom,conn);
OleDbDataReader reader;
reader =myCommand.ExecuteReader() ;
if(reader.Read())
{
for(j=0;j<=9;j++)
{
myint[j]=0;
}
for(int e=0;e<=3;e++)
{
zj[e]="";
}
jb=0;
zgs=0;
jt=0;
do
{
zj[0]=reader["卡号"].ToString();
zj[1]=da.ToString();
zj[2]=reader["部门"].ToString();
zj[3]=reader["姓名"].ToString();
//迟到总数
myint[0]+=Convert.ToInt32(reader["迟到"].ToString());
myint[0]+=Convert.ToInt32(reader["早退"].ToString());
//十至二五,小三十,大于三十
if((Convert.ToInt32(reader["严重迟到"].ToString())>10) & (Convert.ToUInt16(reader["严重迟到"].ToString())<=15))
{
myint[1]++;
}
if((Convert.ToInt32(reader["严重迟到"].ToString())>15) & (Convert.ToUInt16(reader["严重迟到"].ToString())<=30))
{
myint[2]++;
}
if(Convert.ToInt32(reader["严重迟到"].ToString())>30)
{
myint[3]++;
}
if((Convert.ToInt32(reader["严重早退"].ToString())>10) & (Convert.ToUInt16(reader["严重早退"].ToString())<=15))
{
myint[1]++;
}
if((Convert.ToInt32(reader["严重早退"].ToString())>15) & (Convert.ToUInt16(reader["严重早退"].ToString())<=30))
{
myint[2]++;
}
if(Convert.ToInt32(reader["严重早退"].ToString())>30)
{
myint[3]++;
}
//请假时间
myint[4]+=Convert.ToInt32(reader["请假时间"].ToString());
//旷工日数
myint[5]+=(int)Convert.ToSingle(reader["旷工"].ToString());
//加班1
jb+=Convert.ToSingle(reader["加班时间"].ToString());
//加班2
//加班3
if(db.checkjq(reader["日期"].ToString()))
{
zgs+=Convert.ToSingle(reader["总工时"].ToString());
}
//夜间津贴
jt+=db.jishuan(reader["卡号"].ToString(),reader["日期"].ToString());
}while(reader.Read());
if(ins.check(zj[0],zj[1]))
{
bool u=ins.updatekq(zj[0],zj[1],zj[2],zj[3],myint[0],myint[1],myint[2],myint[3],myint[4],myint[5],jb,myint[7],zgs,jt);
}
else
{
bool t=ins.addkq(zj[0],zj[1],zj[2],zj[3],myint[0],myint[1],myint[2],myint[3],myint[4],myint[5],jb,myint[7],zgs,jt);
}
f=true;
}
else
{
MessageBox.Show("这个卡号没有考勤记录");
}
reader.Close();
conn.Close();
}
catch (Exception e1)
{
MessageBox.Show("数据库出错gykq:"+e1.Message);
}
return f;
}
以上是单个记录的,数据库是ACCESS97来的,明明有记录,但查找结果就没有,在win2000下;
public static bool fuck(string da)
{
string[] kh=db.readkh();
for(int i=0;i<kh.Length;i++)
{
gykq(kh[i],da.Trim());
}
return true;
}
这个是调用上面的,也是在win2000下才会出现上面说的问题????
3no
2003-06-30
打赏
举报
回复
是不是说数组溢出了?你看看有这方面的可能么?
TheAres
2003-06-29
打赏
举报
回复
可能就太多了,我想不到那么全。
这个比较明显。
int[] intArr = {1,2,3};
int a = intArr[intArr.Length];
laixiang
2003-06-29
打赏
举报
回复
说说可能的情况吧,,我的办公室网络有问题,不能上网。、现在不能贴出代码。
TheAres
2003-06-29
打赏
举报
回复
找出出错的代码来看看?
VB编程序查看
Access
数据库
密码_VB编程序查看
Access
数据库
密码_
可以查看
Access
数据库
密码!!!!!!!!!!!
Java连接
access
数据库
(图文)
Java连接
access
数据库
(图文)! 值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/
html连接
access
数据库
的小例子
用静态网页的javascript对acess的
数据库
进行访问,用
数据库
的值进行显示!
在C#中使用ADO.Net部件来访问
Access
数据库
在C#中使用ADO.Net部件来访问
Access
数据库
! 值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/
c# 员工管理信息系统!绝对可用!
access
的
数据库
带
数据库
的!!!!c# IT设备资产管理!绝对可用!
access
的
数据库
C#
110,557
社区成员
642,563
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章