我有桌子 "学生"
P_ID LastName FirstName Address City
1 Hansen Ola
2 Svendson Tove
3 Petterson Kari
4 Nilsen Johan
...and so on
Run Code Online (Sandbox Code Playgroud)
如何在C#中更改编辑代码
string firstName = "Ola";
string lastName ="Hansen";
string address = "ABC";
string city = "Salzburg";
string connectionString = System.Configuration.ConfigurationManager
.ConnectionStrings["LocalDB"].ConnectionString;
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = "INSERT INTO Student (LastName, FirstName, Address, City)
VALUES (@ln, @fn, @add, @cit)";
command.Parameters.AddWithValue("@ln", lastName);
command.Parameters.AddWithValue("@fn", firstName);
command.Parameters.AddWithValue("@add", address);
command.Parameters.AddWithValue("@cit", city);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
}
Run Code Online (Sandbox Code Playgroud)
编辑条目,其中姓字段姓价值和名字字段名字值.
我不想这样用
UPDATE Persons SET Address='Nissestien 67', City='Sandnes'
WHERE LastName='Tjessem' AND FirstName='Jakob'
Run Code Online (Sandbox Code Playgroud)
我把原来的陈述编辑成了
command.CommandText = "UPDATE Student(LastName, FirstName, Address, City)
VALUES (@ln, @fn, @add, @cit) WHERE LastName='" + lastName +
"' AND FirstName='" + firstName+"'";
Run Code Online (Sandbox Code Playgroud)
但声明没有被执行,为什么它会抛出SQL异常?有没有解决方案呢?
K D*_*K D 58
这不是更新SQL中记录的正确方法:
command.CommandText = "UPDATE Student(LastName, FirstName, Address, City) VALUES (@ln, @fn, @add, @cit) WHERE LastName='" + lastName + "' AND FirstName='" + firstName+"'";
Run Code Online (Sandbox Code Playgroud)
你应该这样写:
command.CommandText = "UPDATE Student
SET Address = @add, City = @cit Where FirstName = @fn and LastName = @add";
Run Code Online (Sandbox Code Playgroud)
然后添加与为插入操作添加的参数相同的参数.
Hab*_*bib 24
我不想这样用
这是UpdateSQL中语句的语法,您必须使用该语法,否则您将获得异常.
command.Text = "UPDATE Student SET Address = @add, City = @cit Where FirstName = @fn AND LastName = @ln";
Run Code Online (Sandbox Code Playgroud)
然后相应地添加您的参数.
command.Parameters.AddWithValue("@ln", lastName);
command.Parameters.AddWithValue("@fn", firstName);
command.Parameters.AddWithValue("@add", address);
command.Parameters.AddWithValue("@cit", city);
Run Code Online (Sandbox Code Playgroud)
小智 6
string constr = @"Data Source=(LocalDB)\v11.0;Initial Catalog=Bank;Integrated Security=True;Pooling=False";
SqlConnection con = new SqlConnection(constr);
DataSet ds = new DataSet();
con.Open();
SqlCommand cmd = new SqlCommand(" UPDATE Account SET name = Aleesha, CID = 24 Where name =Areeba and CID =11 )";
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
如果您不想使用 SQL 语法(您被迫使用),那么请切换到诸如 Entity Framework 或 Linq-to-SQL 之类的框架,在这些框架中您不必自己编写 SQL 语句。
请永远不要使用这种连接形式:
String st = "UPDATE supplier SET supplier_id = " + textBox1.Text + ", supplier_name = " + textBox2.Text
+ "WHERE supplier_id = " + textBox1.Text;
Run Code Online (Sandbox Code Playgroud)
使用:
command.Parameters.AddWithValue("@attribute", value);
Run Code Online (Sandbox Code Playgroud)
始终面向对象工作
编辑:这是因为当您参数化更新时,它有助于防止 SQL 注入。