ก็มีหลายวิธีนะครับขึ้นอยู่กับการใช้งาน ในตัวอย่างนี้ผมจะแสดงแบบใช้ parameter นะครับ
รูปก่อน update

รูปหลัง update

ตัวอย่างโค้ด
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int id=4,age = 18; //ในตัวอย่างนี้ผมเขียนค่าใหม่ที่จะ update ไปตรงๆ ตรงนี้อาจจะเขียนให้รับค่ามาจากที่อื่นก็ได้
string name = "jimmy";
SqlParameter name_param, age_param, id_param;
SqlConnection con = new SqlConnection();
con.ConnectionString = "Server=.;Database=testupdate;Integrated Security=SSPI";
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "UPDATE table1 SET name = @name , age = @age WHERE
id=@id";
name_param = new SqlParameter();
name_param.ParameterName = "@name";
name_param.SqlDbType = SqlDbType.NVarChar;//ชนิดของข้อมูลของค่า parameter name
name_param.Value = name; //นำค่าตัวแปร name เก็บไว้ใน parameter
age_param = new SqlParameter();
age_param.ParameterName = "@age";
age_param.SqlDbType = SqlDbType.Int;//ชนิดของข้อมูลของค่า parameter age
age_param.Value = age;//นำค่าตัวแปร age เก็บไว้ใน parameter
id_param = new SqlParameter();
id_param.ParameterName = "@id";
id_param.SqlDbType = SqlDbType.Int;//ชนิดของข้อมูลของค่า parameter id
id_param.Value = id;//นำค่าตัวแปร id เก็บไว้ใน parameter
SqlParameter[] param = { name_param,id_param,age_param};
cmd.Parameters.AddRange(param); //เพิ่มคำสั่ง parameter ทั้งหมดให้กับ cmd
con.Open();
cmd.ExecuteNonQuery(); //update ข้อมูล
con.Close();
}
}
}
แต่วิธีนี้จะเป็นแบบ Fix Connection String
(Hardcode) นะครับทางที่ดีควรเก็บค่า ของ connection string ไว้ที่ App.config หรือ web.config จะดีกว่า
ดังนี้
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="constr" connectionString="Server=.;Database=testupdate;Integrated Security=SSPI"/>
</connectionStrings>
</configuration>
[With great power comes great responsibility]