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

有哪位高手能解决吗?(insert into 失败)

2012-01-03 
有谁能解决吗?(insert into 失败)各位好!有个问题想请大家帮忙看看。我以前用的是SQL数据库,前天改用ACCESS

有谁能解决吗?(insert into 失败)
各位好!有个问题想请大家帮忙看看。我以前用的是SQL数据库,前天改用ACCESS数据库,在向数据库里插入数据时遇到问题啦!麻烦啊!
下面是我在做测试用的数据表和代码。
表:admin
字段:Id     数据类型:自动增长型
字段:Name   数据类型:文本
字段:PassWord     文本
字段:RegTime   时间和日期   默认值:Date()

我用   sql= "Insert   into   admin   (Name,PassWord)   values   ( '123456 ', '123456 ') ";
提示Insert   into   语法错误。
然后我有换了个表   login   这个表只有两个字段   Name   和   PassWord   数据类型都是文本   用sql= "Insert   into   login   values   ( '123456 ', '123456 ') "插入时成功。
用sql= "Insert   into   login   (Name,PassWord)   values   ( '0123 ',0123 ') "插入时提示
Insert   into   语法错误。昏啊   有错误吗?
代码如下:

using   System;
using   System.Data;
using   System.Data.OleDb;

namespace   Access
{
///   <summary>
///   DataAccess   的摘要说明。
///   </summary>
public   class   DataAccess
{


public   DataAccess()
{
//
//   TODO:   在此处添加构造函数逻辑
//
}
             
private   int   count=0;
private   OleDbConnection   conn;
private   static   string   ErrorStr=null;


public   OleDbConnection   OleDbConn()
{
          ErrorStr= " ";
string   ConnStr=System.Configuration.ConfigurationSettings.AppSettings[ "ConnectionString "].ToString()+System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings[ "DbPath "].ToString());
try
{
return   new   OleDbConnection(ConnStr);
}
catch(Exception   e)
{
ErrorStr= "数据连接失败 "+e.Message;
return   null;
}
finally
{
}


}


public   bool   DataUpdate(string   SqlStr,OleDbConnection   DbConn)
{
ErrorStr= " ";
if(DbConn==null)
{
conn=this.OleDbConn();
}
else
{
conn=DbConn;
}

try
{
if(conn.State==ConnectionState.Closed)
{
conn.Open();
}

OleDbCommand   cmd=new   OleDbCommand(SqlStr,conn);
cmd.CommandType=CommandType.Text;
count=cmd.ExecuteNonQuery();
return   !(count <1);
}
catch(Exception   e)
{
ErrorStr= "数据更新失败 "+e.Message;
return   false;
}
finally
{
if(conn.State!=ConnectionState.Closed)
{
conn.Close();
}
}


}


public   string   ErrorMessage
{
get  
{
return   ErrorStr;
}
}


}
}


using   System;
using   System.Collections;
using   System.ComponentModel;
using   System.Data;
using   System.Drawing;
using   System.Web;
using   System.Web.SessionState;
using   System.Web.UI;
using   System.Web.UI.WebControls;
using   System.Web.UI.HtmlControls;
using   System.Data.OleDb;


namespace   Access
{
///   <summary>
///   WebForm1   的摘要说明。


///   </summary>
public   class   WebForm1   :   System.Web.UI.Page
{
protected   System.Web.UI.WebControls.TextBox   Name;
protected   System.Web.UI.WebControls.TextBox   PassWord;
protected   System.Web.UI.WebControls.Button   btnadd;
protected   System.Web.UI.WebControls.Button   btncancel;

private   void   Page_Load(object   sender,   System.EventArgs   e)
{
//   在此处放置用户代码以初始化页面

this.btncancel.Attributes.Add( "onclick ", "window.close() ");

}

#region   Web   窗体设计器生成的代码
override   protected   void   OnInit(EventArgs   e)
{
//
//   CODEGEN:   该调用是   ASP.NET   Web   窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

///   <summary>
///   设计器支持所需的方法   -   不要使用代码编辑器修改
///   此方法的内容。
///   </summary>
private   void   InitializeComponent()
{        
this.btnadd.Click   +=   new   System.EventHandler(this.btnadd_Click);
this.Load   +=   new   System.EventHandler(this.Page_Load);

}
#endregion

private   void   btnadd_Click(object   sender,   System.EventArgs   e)
{
string   Name=this.Name.Text.Trim();
string   PassWord=this.PassWord.Text.Trim();
PassWord=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(PassWord, "MD5 ").ToString();
string   sql= "Insert   into   admin   (Name,PassWord)   values   ( ' "+Name+ " ', ' "+PassWord+ " ') ";
                                                string   sql1= "Insert   into   login   values   ( '123456 ', '123456 ') "
string   sql2= "Insert   into   login   (Name,PassWord)   values   ( '0123 ',0123 ') "

                                                (new   DataAccess()).DataUpdate(sql1,null);
      Response.Write((new   DataAccess()).ErrorMessage);
//用sql1成功,用sql,和sql2就会提示Insert   into   语法错误。


}




}
}
}


哎   后来我有换了个方法   也是提示insert   into   语法错误。你说错在哪   啊   郁闷呀!

private   void   btnadd_Click(object   sender,   System.EventArgs   e)
{
string   Name=this.Name.Text.Trim();
string   PassWord=this.PassWord.Text.Trim();
PassWord=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(PassWord, "MD5 ").ToString();
string   sql= "Insert   Into   admin   (Name,PassWord)   values   (@Name,@PassWord) ";

OleDbConnection   conn=(new   DataAccess()).OleDbConn();
OleDbCommand   cmd=new   OleDbCommand(sql,conn);

cmd.Parameters.Add(new   OleDbParameter( "@Name ",System.Data.OleDb.OleDbType.Char));
cmd.Parameters[ "@Name "].Value=Name;

cmd.Parameters.Add(new   OleDbParameter( "@PassWord ",System.Data.OleDb.OleDbType.Char));


cmd.Parameters[ "@PassWord "].Value=PassWord;


try
{
if(conn.State==ConnectionState.Closed)
{
conn.Open();
}
cmd.ExecuteNonQuery();
Response.Write( " <script> window.alert( '添加成功 ') </script> ");
}
catch(Exception   ex)
{
Response.Write(ex.Message.ToString());
}
finally
{
if(conn.State!=ConnectionState.Closed)
{
conn.Close();
}
}




}


大伙帮忙看下   错在哪呀!




[解决办法]
access中 PassWord是关键字

热点排行