各位好,我是C#新手,下面的代码执行时总提示 insert into 语句语法错误,可否帮我看看问题出再哪里? public partial class frmLogin : Form
{
string userName;
string userPwd;
//读取app.config文件的数据库配置;
string connStr = ConfigurationManager.ConnectionStrings["dataConnStr"].ConnectionString;
public frmLogin()
{
InitializeComponent();
} private void label3_Click(object sender, EventArgs e)
{
frmRegister register = new frmRegister();
register.Show();
this.Hide(); } private void btnCancel_Click(object sender, EventArgs e)
{
Application.Exit();
} private void btnOk_Click(object sender, EventArgs e)
{
userName = tbxName.Text;
userPwd = tbxPwd.Text;
frmMain main = new frmMain();
main.userName = userName;//传递用户信息给窗体frmMain;
try
{
OleDbConnection conn = null;
OleDbCommand cmd = null;
OleDbDataReader dr = null;
conn = new OleDbConnection(connStr);
conn.Open();
string sql = "select * from [user] where [userName]='"+userName+"'and [userPwd]='"+userPwd+"'";
cmd = new OleDbCommand(sql,conn);
//cmd.Parameters
dr = cmd.ExecuteReader();
if (dr.Read())
{
insertLog();
main.Show();
this.Hide();
}
else
{
MessageBox.Show("用户名或密码错误!如果未注册,请先注册!");
tbxName.Text = "";
tbxPwd.Text = "";
tbxName.Focus();
}
dr.Close();
cmd.Connection.Close();
conn.Close();
return;
}
catch(Exception e1)
{
MessageBox.Show(e1.Message);
} } public void insertLog()
{
string loginTime = DateTime.Now.ToString();
try
{
OleDbConnection conn2 = null;
conn2 = new OleDbConnection(connStr);
conn2.Open();
string sql2 = "insert into [log](userName,date) values('" + userName + "','" + loginTime + "')";
OleDbCommand cmd2 = new OleDbCommand(sql2, conn2);
cmd2.ExecuteNonQuery();
cmd2.Connection.Close();
conn2.Close();
}
catch (Exception e2)
{
MessageBox.Show(e2.Message);
}
}
}
{
string userName;
string userPwd;
//读取app.config文件的数据库配置;
string connStr = ConfigurationManager.ConnectionStrings["dataConnStr"].ConnectionString;
public frmLogin()
{
InitializeComponent();
} private void label3_Click(object sender, EventArgs e)
{
frmRegister register = new frmRegister();
register.Show();
this.Hide(); } private void btnCancel_Click(object sender, EventArgs e)
{
Application.Exit();
} private void btnOk_Click(object sender, EventArgs e)
{
userName = tbxName.Text;
userPwd = tbxPwd.Text;
frmMain main = new frmMain();
main.userName = userName;//传递用户信息给窗体frmMain;
try
{
OleDbConnection conn = null;
OleDbCommand cmd = null;
OleDbDataReader dr = null;
conn = new OleDbConnection(connStr);
conn.Open();
string sql = "select * from [user] where [userName]='"+userName+"'and [userPwd]='"+userPwd+"'";
cmd = new OleDbCommand(sql,conn);
//cmd.Parameters
dr = cmd.ExecuteReader();
if (dr.Read())
{
insertLog();
main.Show();
this.Hide();
}
else
{
MessageBox.Show("用户名或密码错误!如果未注册,请先注册!");
tbxName.Text = "";
tbxPwd.Text = "";
tbxName.Focus();
}
dr.Close();
cmd.Connection.Close();
conn.Close();
return;
}
catch(Exception e1)
{
MessageBox.Show(e1.Message);
} } public void insertLog()
{
string loginTime = DateTime.Now.ToString();
try
{
OleDbConnection conn2 = null;
conn2 = new OleDbConnection(connStr);
conn2.Open();
string sql2 = "insert into [log](userName,date) values('" + userName + "','" + loginTime + "')";
OleDbCommand cmd2 = new OleDbCommand(sql2, conn2);
cmd2.ExecuteNonQuery();
cmd2.Connection.Close();
conn2.Close();
}
catch (Exception e2)
{
MessageBox.Show(e2.Message);
}
}
}
由于time在数据库中保留字,故插入时要加[ ]
string sql2 = "insert into [log](userName,[date]) values('" + userName + "','" + loginTime + "')";在spring21st的个人空间里搜到了资料,感谢spring21st!
既然报了语法错误就调试运行时SQL。打印出来,看能不能执行