error ขึ้นแบบนี้ The conversion of a nvarchar data type to a datetime data type resulted in an out-of-range value พอมีวิธีแก้หรือป่าวครับ
Code (ASP)
ไม่กี่วันก่อนยังบันทึกได้อยู่เลยครับ แต่ปีมันเพี้ยรคับ 10/10/3098 2:27:22 พอมาวันนี้ลองบันทึก บันทึกไม่ได้ครับ ไม่ได้แก้ไขโค้ดเลยครับ ขึ้นแบบในรูป ลองเปิดงานอื่นแ้ล้วบันทึก datetime ขึ้นแบบนี้เหมือนกัน รบกวนช่วยชี้แนะทางแก้ไข กับเรื่องปีไม่ให้มันเพี้ยรหน่อยครับ
ขอบคุณครับ
protected void btnSave_Click(object sender, EventArgs e)
{
string str = null;
DataTable dt2 = null;
string strOrderID = "0";
int i = 0;
connect_db();
str = "insert into Orders (Order_Date,Cus_ID,Order_Name,Order_Address,Order_Tel,Order_PriceAll) " + " VALUES " + " (@sOrderDate,@sid,@sName,@sAddress,@sTel,@sss)";
SqlCommand insert = new SqlCommand(str, dbcon.conn);
insert.Parameters.AddWithValue("@sOrderDate", DateTime.Now.ToString());
insert.Parameters.AddWithValue("@sid", txtid.Text);
insert.Parameters.AddWithValue("@sName", txtName.Text);
insert.Parameters.AddWithValue("@sAddress", txtAddress.Text);
insert.Parameters.AddWithValue("@sTel", txtTel.Text);
insert.Parameters.AddWithValue("@sss", lblSumTotal.Text);
insert.ExecuteNonQuery();
str = "SELECT Max(Order_ID) As sOrderID FROM Orders ";
SqlDataAdapter da = new SqlDataAdapter(str, dbcon.conn);
DataTable dt1 = new DataTable();
da.Fill(dt1);
if (dt1.Rows.Count > 0)
{
strOrderID = dt1.Rows[0]["sOrderID"].ToString();
}
dt2 = (DataTable)Session["myCart"];
for (i = 0; i <= dt2.Rows.Count - 1; i++)
{ /*
str = "INSERT INTO OrderDetail (Order_ID,Pro_ID,ODt_Amount) " + " VALUES " + " ('" + strOrderID + "','" + dt2.Rows[i]["Pro_ID"] + "','" + dt2.Rows[i]["ODt_Amount"] + "')";
var _with1 = insert;
_with1.CommandText = str;
_with1.CommandType = CommandType.Text;
* ใช้ชุดคำสั่ง sql ที่เก็บอยู่ในตัวแปร str
_with1.ExecuteNonQuery();
*/
str = "INSERT INTO OrderDetail (Order_ID,Pro_ID,ODt_Amount,ODt_Price) " + " VALUES " + " ('" + strOrderID + "','" + dt2.Rows[i]["Pro_ID"] + "','" + dt2.Rows[i]["ODt_Amount"] + "','" + strTotal+ "')";
var _with1 = insert;
_with1.CommandText = str;
_with1.CommandType = CommandType.Text;
_with1.ExecuteNonQuery();
}
SqlCommand cmd = new SqlCommand("update [Orders] set Order_Status='please payment' where Order_ID=" + strOrderID + "", dbcon.conn);
cmd.ExecuteNonQuery();
dbcon.closeDB();
Session.Remove("myCart");
Response.Redirect("Vieworder.aspx?Order_ID=" + strOrderID);
}
Tag : ASP
Date :
2012-10-15 19:01:11
By :
alee62
View :
2238
Reply :
2
ได้แล้วครับ ตอนเเรกไปดูในเบสวันที่ล่าสุด บันทึกได้เเค่ 10/11/3098 21:09:03 พอไปอ่านในเน็ตมีคนโพสไว้ว่าเวลามันเก็บ เก็บเป็น เดือน/วัน/ปี วันนี้วันที่ 15 เดือนมันมีแค่12 ก็เลย error
ตอนนี้เขียนเป็น
Code (ASP)
insert.Parameters.AddWithValue("@sOrderDate", DateTime.Now.ToString("MM/dd/yyyy"));
บันทึกได้ครับแต่ปีมันเีพี้ยรอะคับ เเบบนี้ 15/10/3098 0:00:00
Date :
2012-10-15 21:21:02
By :
alee62
เรื่องวันที่ลองดูพวก Culture ครับ ผมตอบไว้หลายกระทู้ครับ
Date :
2012-10-15 21:28:49
By :
mr.win
Load balance : Server 05