为什么 select scope_identity() 为 SQL 查询返回 1?
Why is select scope_identity() returning 1 for SQL query?
我在 sql 命令中使用 SQL 查询与 SELECT SCOPE_IDENTITY()。这是我的代码:
SqlCommand cmd = new SqlCommand("INSERT INTO tbl_Supplier(Supplier_Name,Supplier_Address, Supplier_PhoneNo,Supplier_City,Supplier_Remarks) VALUES('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','"+DropDownList1.SelectedItem+"','"+TextBox4.Text+"') RETURN SCOPE_IDENTITY()", conn);
var id = cmd.ExecuteScalar();
conn.Close();
但是代码总是返回 1?
您使用错误的语法来获取该信息。
"...; SELECT SCOPE_IDENTITY()"
(还要注意 SELECT 之前和第一个 sql 语句结束之后的分号)
此时 ExecuteScalar 能够获取 SELECT
返回的第一行的第一列
说到这里,请花点时间学习如何执行"Parameterized Queries" your code is very weak and an easy target for Sql Injection
string cmdText = @"INSERT INTO tbl_Supplier
(Supplier_Name,
Supplier_Address,
Supplier_PhoneNo,
Supplier_City,
Supplier_Remarks)
VALUES(@name, @address, @phone, @city, @remarks);
SELECT SCOPE_IDENTITY()"
using(SqlCommand cmd = new SqlCommand(cmdText, connection))
{
connection.Open();
cmd.Parameters.Add("@name", SqlDbType.NVarWChar).Value = TextBox1.Text;
cmd.Parameters.Add("@address", SqlDbType.NVarWChar).Value = TextBox2.Text;
cmd.Parameters.Add("@phone", SqlDbType.NVarWChar).Value = TextBox3.Text;
cmd.Parameters.Add("@city", SqlDbType.NVarWChar).Value = DropDownList1.SelectedItem
cmd.Parameters.Add("@remarks", SqlDbType.NVarWChar).Value = TextBox4.Text;
var id = cmd.ExecuteScalar();
}
conn.Close();
我在 sql 命令中使用 SQL 查询与 SELECT SCOPE_IDENTITY()。这是我的代码:
SqlCommand cmd = new SqlCommand("INSERT INTO tbl_Supplier(Supplier_Name,Supplier_Address, Supplier_PhoneNo,Supplier_City,Supplier_Remarks) VALUES('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','"+DropDownList1.SelectedItem+"','"+TextBox4.Text+"') RETURN SCOPE_IDENTITY()", conn);
var id = cmd.ExecuteScalar();
conn.Close();
但是代码总是返回 1?
您使用错误的语法来获取该信息。
"...; SELECT SCOPE_IDENTITY()"
(还要注意 SELECT 之前和第一个 sql 语句结束之后的分号)
此时 ExecuteScalar 能够获取 SELECT
返回的第一行的第一列说到这里,请花点时间学习如何执行"Parameterized Queries" your code is very weak and an easy target for Sql Injection
string cmdText = @"INSERT INTO tbl_Supplier
(Supplier_Name,
Supplier_Address,
Supplier_PhoneNo,
Supplier_City,
Supplier_Remarks)
VALUES(@name, @address, @phone, @city, @remarks);
SELECT SCOPE_IDENTITY()"
using(SqlCommand cmd = new SqlCommand(cmdText, connection))
{
connection.Open();
cmd.Parameters.Add("@name", SqlDbType.NVarWChar).Value = TextBox1.Text;
cmd.Parameters.Add("@address", SqlDbType.NVarWChar).Value = TextBox2.Text;
cmd.Parameters.Add("@phone", SqlDbType.NVarWChar).Value = TextBox3.Text;
cmd.Parameters.Add("@city", SqlDbType.NVarWChar).Value = DropDownList1.SelectedItem
cmd.Parameters.Add("@remarks", SqlDbType.NVarWChar).Value = TextBox4.Text;
var id = cmd.ExecuteScalar();
}
conn.Close();