插入查询语法
本文关键字:语法 查询 插入 | 更新日期: 2023-09-27 18:06:20
我一直得到一个错误说不正确的语法附近的地方。有人能告诉我我哪里做错了吗?
string strSession = objGetSession.GetEmailFromSession();
con.Open();
string strInsertFnLn = "Insert into AUserAddress (FirstName, LastName) values (@FirstName, @LastName) where AUser_ID = (Select ID from AUser where Email ='" + strSession + "')";
using (SqlCommand Cmd = new SqlCommand(strInsertFnLn, con))
{
Cmd.Parameters.AddWithValue("@FirstName", txtEditFirstName.Text);
Cmd.Parameters.AddWithValue("@LastName", txtEditLastName.Text);
//Cmd.Parameters.AddWithValue("@Email", txtEditEmail.Text);
Cmd.ExecuteNonQuery();
con.Close();
}
我想你是说UPDATE
UPDATE a
SET a.FirstName = @FirstName,
a.LastName = @LastName
FROM AUserAddress a
INNER JOIN AUser b
ON a.AUser_ID = b.ID
WHERE b.Email = @Email
所以完整的语句看起来像这样,
string strSession = objGetSession.GetEmailFromSession();
string connString = "connection string here";
string strInsertFnLn = @"
UPDATE a
SET a.FirstName = @FirstName,
a.LastName = @LastName
FROM AUserAddress a
INNER JOIN AUser b
ON a.AUser_ID = b.ID
WHERE b.Email = @Email
";
using (SqlConnection con = new SqlConnection(connString))
{
using (SqlCommand Cmd = new SqlCommand(strInsertFnLn, con))
{
Cmd.Parameters.AddWithValue("@FirstName", txtEditFirstName.Text);
Cmd.Parameters.AddWithValue("@LastName", txtEditLastName.Text);
Cmd.Parameters.AddWithValue("@Email", strSession);
try
{
con.Open();
Cmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
// do something with the exception
// don't hide it
}
}
}
问题在这一行
string strInsertFnLn = "Insert into AUserAddress (FirstName, LastName)
values (@FirstName, @LastName) where
AUser_ID = (Select ID from AUser where Email ='" + strSession + "')";
where
条件在这个查询中有什么用
应该是
string strInsertFnLn = "Insert into AUserAddress (FirstName, LastName)
values (@FirstName, @LastName)";
编辑1
或者如果你想更新记录,那么它应该如下
string strInsertFnLn = "update AUserAddress set FirstName=@FirstName,
LastName=@LastName where
AUser_ID = (Select ID from AUser where Email ='" + strSession + "')";