using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
namespace PlayMusic.DB
{
    public class DBHelper
    {        private static string conString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data source=D:\c#\db\accdb.mdb";        public static OleDbConnection objConnection = new OleDbConnection(conString);
        public void insertDB(string UserName, string Password)
        {
            objConnection.Open();
            string sql = "INSERT INTO UserInformation VALUES("+UserName+","+Password+")";
            OleDbCommand cmd = new OleDbCommand(sql, DBHelper.objConnection);
            OleDbDataReader aReader = cmd.ExecuteReader(); 
            objConnection.Close();
        }
    }
}
总是说这个地方有问题,想问下是怎么回事。

解决方案 »

  1.   

    sql有这么写的?“string sql = "INSERT INTO UserInformation VALUES("+UserName+","+Password+")";

    至少我没这么写过,请教了
      

  2.   

    1,首先确保连接正确
    2,稍微修改下SQl ,写上表字段,假设为username,pwd
    string sql = "INSERT INTO UserInformation(username,pwd) VALUES('"+UserName+"','"+Password+"')";
    3,
    用 cmd.ExcuteNonQuery();         
      

  3.   

    同意一楼的调试下啊 ...看sql是不是对的啊
    string sql = "INSERT INTO UserInformation VALUES("+UserName+","+Password+")"; 而且这个 UserName,Password   是字符串的就要加单引号啦
    这样你插入的值跟表里面的字段是不是匹配的啊?
      

  4.   

    我是这么连的,你把mdb文件地址改成自己的看看.我用这个连接没出错. string connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrator\桌面\cs\App_Data\db.mdb;Persist Security Info=False;Jet OLEDB:Database Password=";
      

  5.   

    1,首先确保连接正确 
    2,稍微修改下SQl ,写上表字段,假设为username,pwd .
    还有就是字段值要加单引号的,
    string sql = "INSERT INTO UserInformation(username,pwd) VALUES('"+UserName+"','"+Password+"')"; 
    3, 
    用 cmd.ExcuteNonQuery
      

  6.   

    好像这样也可以啊,只不过要把所有字段的值按顺序写在values里面
      

  7.   

    string sql = "INSERT INTO UserInformation VALUES('"+UserName+"','"+Password+"')";
    values里面加上单引号
      

  8.   


    using System.Data;
    using System.Data.OleDb;
    namespace PlayMusic.DB
    {
        public class DBHelper
        {        private static string conString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data source=D:\c#\db\accdb.mdb;Persist Security Info=False;Jet OLEDB:Database Password=";
            public static OleDbConnection objConnection = new OleDbConnection(conString);
            public void insertDB(string UserName, string Password)
            {
                objConnection.Open();
                string sql = "INSERT INTO UserInformation VALUES("+UserName+","+Password+")";
                OleDbCommand cmd = new OleDbCommand(sql, DBHelper.objConnection);
                cmd.ExcuteNonQuery();
                objConnection.Close();
            }
        }
    }
      

  9.   

      首先,我觉得你的数据库文件的路径用绝对路径不是很好吧,这里提供一种方法给你参考:你把数据库的文件放到项目目录下的bin/debug目录中,然后
              string path = System.IO.Directory.GetCurrentDirectory();//获取工作路径
               string dbmap = path + "\\user.mdb";
              OleDbConnection weida = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" + dbmap);
      这样的方法来连接比较好,可移植性也会比较强。
      
      另外,你说“总是说这个地方有问题,想问下是怎么回事”,具体有什么异常信息你应该贴出来让大家看下嘛,那样对你的问题更快地解决会有帮助。你的SQL语句,如果你的username与password都是数字类型的,那就不要单引号,如果是文本型的,要'"+username+"','"+password+"'这样写才行,另外,插入语句中你的表名后面并没有标明你要插入的数据对应的字段,那你要确保你插入的数据与数据库里面的字段是一一对应的并且字段的数目也是完全一致的。如你上面的这种写法,那你数据库中只能有username与password两个字段并且是username在前,password后才行。如果你的数据库还有其它字段,如id等等,那SQL语句要这样写 
       "INSERT INTO UserInformation(UserName,Password) VALUES("+UserName+","+Password+")";
      

  10.   

    改 成这样的就没问题了    "+username+"     把这个外面在加一层单引号  ' "+username+ " '