string first4ID; //รหัสปี4 ตัวแรก
string VID;//รหัสที่สำเร็จ
string findIDMAX = "SELECT max(Test_ID) as maxvid FROM [test]";
DataTable MAXID = dbconn.QueryExecuteScalar(findIDMAX);
if (MAXID.Rows[0]["maxvid"] == DBNull.Value) //กรณี DB ไม่มีข้อมูลเลย
{
first4ID = Convert.ToString(DateTime.Now.Year);
VID = first4ID + "001";
}
else //กรณีมีข้อมูลในตาราง
{
int IDIs = Convert.ToInt32(MAXID.Rows[0]["maxvid"]);
string YearDB = Convert.ToString(IDIs.ToString().Substring(4).Trim());
string yearnow = Convert.ToString(DateTime.Now.Year);
if (yearnow != YearDB) && (MAXID.Rows[0]["maxvid"] != DBNull.Value)) ถ้าปีไม่เท่ากัน
{
first4ID = Convert.ToString(DateTime.Now.Year);
VID = first4ID + "001";
}
else //ถ้าปีเท่ากัน
{
VID = (IDIs + 1).ToString();
}
string Test;
Test = "insert into test [Test_ID] Values ('" + VID + "');";
dbconn.QueryExecuteScalar(Test);
dbconn.Close();
}
น่าจะนะคับ แต่อยากจะให้ระวังนิดนึง เรื่องการแปลง type ถ้าแปลงจาก int to string อ่ะได้
แต่แปลงจาก string to int นี่ต้องระวังนิดนึงบางทีมันแปลงไม่ได้อ่ะคับ เรื่องนี้สำคัญ