首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

简单的数据库有关问题,请问,多谢

2012-01-13 
简单的数据库问题,请教,谢谢publicstaticreadonlystringConnString@ ProviderMicrosoft.Jet.OLEDB.4.0

简单的数据库问题,请教,谢谢
public   static   readonly   string   ConnString   =   @ "Provider   =   Microsoft.Jet.OLEDB.4.0;Data   Source   =   Data\storage.mdb "
public   static   readonly   string   ChangePassword   =   "update   users   set   userPassword=@userNewPassword   where   userName=@userName "

OleDbConnection   conn   =   new   OleDbConnection(ConnString);
OleDbCommand   cmd   =   new   OleDbCommand(Constants.ChangePassword,conn);
OleDbParameter   paramUserName   =   new   OleDbParameter( "@userName ",   userName);
cmd.Parameters.Add(paramUserName);
OleDbParameter   paramUserNewPassword   =   new   OleDbParameter( "@userNewPassword ",   userNewPassword);
cmd.Parameters.Add(paramUserNewPassword);
try
                                {
                                        conn.Open();
                                      cmd.ExecuteNonQuery();                                
                                        conn.Close();
                                        return   true;
                                       
                                }
                                catch   (OleDbException   ex)
                                {
                                        return   false;
                                }

请问   cmd.ExecuteNonQuery(),参数正确,怎么在数据库中无法更新,请各位大哥多多指教?小弟刚学c#不久

[解决办法]
参数顺序 ~
[解决办法]
给楼主整理一下,希望能够帮上忙:
1 检查数据库文件,是否为只读,若NTFS检查是否有权限问题
2 检查数据库结构,是否存在外键或主键约束问题。可将该语句直接放入Access的查询中执行看是否正确。
3 逐行调试程序语句,看执行cmd.ExecuteNonQuery()后有没有Exception内容

其他应该没有什么问题了。补充一下,楼主的代码写得很乱。。。
[解决办法]
/// <summary>
/// 新建用户资料
/// </summary>
/// <param name= "sacc "> </param>
/// <param name= "spw "> </param>
/// <param name= "snanme "> </param>
/// <param name= "slv "> </param>
/// <returns> </returns>
public bool saveUser(string sacc, string spw, string snanme, string slv,string dTime)


{
string sql = " ";
sql = "insert into [Admin] " +

"(user_name,user_acc,user_pw,user_lv,user_date) " +
" values( ' " +
sacc + " ', ' " +
spw + " ', ' " +
snanme + " ', ' " +
slv + " ',# " +
dTime + "#) ";

try
{
this.ExecuteSql(sql);
}
catch (Exception e)
{
MessageBox.Show(e.Message, "错误 ", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}

return true;
}

/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name= "SQLString "> </param>
/// <returns> </returns>
public int ExecuteSql(string SQLString)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
using (OleDbCommand cmd = new OleDbCommand(SQLString, connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.OleDb.OleDbException E)
{
throw new Exception(E.Message);
}
}
}
}

--------------->
调用:saveUser(TextBox1.text,TextBox2.text,TextBox3.text,TextBox4.text,TextBox5.text);

[解决办法]
up

热点排行