读书人

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

发布时间: 2012-01-03 22:16:07 作者: rapoo

有谁能解决吗?(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是关键字

读书人网 >asp.net

热点推荐