void Button1_Click(object sender, EventArgs e) {
string connectionString;
string queryString;
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; " +
"Ole DB Services=-4; " +
"Data Source=C:\\Nettest\\dg1.mdb"; queryString = "Insert into StuInfo(EId,Name) values('"+TxtId.Text.Trim()+"','"+TxtName.Text.Trim()+"')";
//queryString = "Insert into StuInfo(EId,Name) values('2005010101','aaa')";
OleDbConnection dbConnection = new OleDbConnection(connectionString);
dbConnection.Open();
OleDbCommand cmd = new OleDbCommand(queryString,dbConnection);
OleDbDataReader dr = cmd.ExecuteReader();
try
{ Session["ID"]=TxtId.Text.Trim(); //dbConnection.Open();
//cmd.ExecuteReader();
//dbConnection.ExecuteNonQuery();
Response.Redirect("test.aspx");
}
catch(Exception)
{
//Response.Write("<script language=\"javascript\">"+"\n");
Response.Write("不能重复"); }
string connectionString;
string queryString;
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; " +
"Ole DB Services=-4; " +
"Data Source=C:\\Nettest\\dg1.mdb"; queryString = "Insert into StuInfo(EId,Name) values('"+TxtId.Text.Trim()+"','"+TxtName.Text.Trim()+"')";
//queryString = "Insert into StuInfo(EId,Name) values('2005010101','aaa')";
OleDbConnection dbConnection = new OleDbConnection(connectionString);
dbConnection.Open();
OleDbCommand cmd = new OleDbCommand(queryString,dbConnection);
OleDbDataReader dr = cmd.ExecuteReader();
try
{ Session["ID"]=TxtId.Text.Trim(); //dbConnection.Open();
//cmd.ExecuteReader();
//dbConnection.ExecuteNonQuery();
Response.Redirect("test.aspx");
}
catch(Exception)
{
//Response.Write("<script language=\"javascript\">"+"\n");
Response.Write("不能重复"); }
--------------------------------------------------------------------------------INSERT INTO 语句的语法错误。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。源错误: 生成此未处理异常的源代码只能在调试模式中进行编译时显示。若要启用该功能,请执行以下步骤之一,然后请求 URL:1. 在生成错误的文件的顶部添加一个“Debug=true”指令。示例: <%@ Page Language="C#" Debug="true" %>或者:2. 将以下节添加到应用程序的配置文件中:<configuration>
<system.web>
<compilation debug="true"/>
</system.web>
</configuration>请注意,第二种方法将使给定应用程序中的所有文件在调试模式下进行编译。第一种方法只使特定文件在调试模式下进行编译。重要事项:以调试模式运行应用程序肯定会引起内存/性能系统开销。在部署到产品方案中之前,应该确保应用程序已禁用调试。 堆栈跟踪:
[OleDbException (0x80040e14): INSERT INTO 语句的语法错误。]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) +41
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +122
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +92
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +65
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +112
System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) +69
System.Data.OleDb.OleDbCommand.ExecuteReader() +7
ASP.login_aspx.Button1_Click(Object sender, EventArgs e) +255
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +83
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1292
1、 你的StuInfo(EId,Name)中字段名Name 与SQL里面是name 函数冲突
导致SQL检查错误。 解决办法 改字段名 然后再试
2、 可能你的TxtId.Text.Trim()和TxtName.Text.Trim() 获得的值包括了单引号 '
而你没有对其处理 所以产生错误
action
add
aggregate
all
alter
after
and
as
asc
avg
avg_row_length
auto_increment
between
bigint
bit
binary
blob
bool
both
by
cascade
case
char
character
change
check
checksum
column
columns
comment
constraint
create
cross
current_date
current_time
current_timestamp
data
database
databases
date
datetime
day
day_hour
day_minute
day_second
dayofmonth
dayofweek
dayofyear
dec
decimal
default
delayed
delay_key_write
delete
desc
describe
distinct
distinctrow
double
drop
end
else
escape
escaped
enclosed
enum
explain
exists
fields
file
first
float
float4
float8
flush
foreign
from
for
full
function
global
grant
grants
group
having
heap
high_priority
hour
hour_minute
hour_second
hosts
identified
ignore
in
index
infile
inner
insert
insert_id
int
integer
interval
int1
int2
int3
int4
int8
into
if
is
isam
join
key
keys
kill
last_insert_id
leading
left
length
like
lines
limit
load
local
lock
logs
long
longblob
longtext
low_priority
max
max_rows
match
mediumblob
mediumtext
mediumint
middleint
min_rows
minute
minute_second
modify
month
monthname
myisam
natural
numeric
no
not
null
on
optimize
option
optionally
or
order
outer
outfile
pack_keys
partial
password
precision
primary
procedure
process
processlist
privileges
read
real
references
reload
regexp
rename
replace
restrict
returns
revoke
rlike
row
rows
second
select
set
show
shutdown
smallint
soname
sql_big_tables
sql_big_selects
sql_low_priority_updates
sql_log_off
sql_log_update
sql_select_limit
sql_small_result
sql_big_result
sql_warnings
straight_join
starting
status
string
table
tables
temporary
terminated
text
then
time
timestamp
tinyblob
tinytext
tinyint
trailing
to
type
use
using
unique
unlock
unsigned
update
usage
values
varchar
variables
varying
varbinary
with
write
when
where
year
year_month
zerofill
把这一句改为:
queryString = "Insert into StuInfo(EId,Name) values(@id,@name)";
然后在OleDbCommand cmd = new OleDbCommand(queryString,dbConnection);
后面加上
cmd.Parameters.add("@id",txtID.text.Trim());
cmd.Parameters.add("@name",txtName.Text.Trim());
这样科学一些,而且也容易看一些,不会被那些单双引号弄昏,试试看?