注册 登录
编程论坛 C# 论坛

求思路!!!!!有没有大神愿意帮助一下

zhu404424118 发布于 2014-11-20 09:59, 689 次点击
我做的系统连不上数据库,数据库用access做的,有没有什么管理系统借鉴一下连接数据库模块,急用,谢谢
7 回复
#2
邓士林2014-11-20 12:20
看那个学生管理系统,也是采用Access数据库,连接不上,是什么原因报错,是连接字符串还是别的,在连接Acess时,对不同的Access版本Provider有一点差别
#3
zhu4044241182014-11-20 16:53
回复 2 楼 邓士林
说是缺少强制转换符  我改了还是不对
#4
zhu4044241182014-11-20 16:59
回复 3 楼 zhu404424118
int i=Convert.ToInt32(cmd.ExecuteScalar())


报错的就是标记的地方,百度也找不到错误的在哪里

方便的话您能给我一个连接Access数据库的,方法不,有案例也可以,
找不到错误我估计是连接的地方错误了。
#5
邓士林2014-11-21 08:35
private static string m_oleDbPath = Assembly.GetExecutingAssembly().Location + @"\..\..\data\Student.mdb";

        public static OleDbConnection GetConnenction()
        {
            string strConnection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + m_oleDbPath;
            OleDbConnection oleDBcon = new OleDbConnection(strConnection);
            oleDBcon.Open();
            return oleDBcon;
        }
#6
邓士林2014-11-21 08:38
以下是引用zhu404424118在2014-11-20 16:59:05的发言:

int i=Convert.ToInt32(cmd.ExecuteScalar())


报错的就是标记的地方,百度也找不到错误的在哪里

方便的话您能给我一个连接Access数据库的,方法不,有案例也可以,
找不到错误我估计是连接的地方错误了。

你跟踪下,如果你没有把这个异常Catch掉的话,是由于cmd.ExecuteScalar()为空,导致无法转换,可以加一个判断。
if (cmd.ExecuteScalar() != null)
{
      return true;
}
#7
欣赏1102014-11-24 08:43
Mark
#8
zhu4044241182014-12-02 08:56
回复 6 楼 邓士林
我找到了,谢谢你的建议,的确是access的版本不符合
1