' 输入字符串格式不正确.' 插入日期,并在 asp.net 中设置数据
本文关键字:asp net 置数据 并在 插入 字符串 输入 格式 不正确 日期 | 更新日期: 2023-09-27 17:57:02
我将在 Asp.net 中创建移动商店网站
我在 asp.net 中创建插入页面,并使用数据集插入产品。
当我点击用于添加到数据库的按钮时. 给我看这个错误
我如何解决它?
这是我的数据库
protected void Button1_Click(object sender, EventArgs e)
{
PersianCalendar pc = new PersianCalendar();
String datetime=pc.GetYear(DateTime.Now) + "/" + pc.GetMonth(DateTime.Now) + "/" + pc.GetDayOfMonth(DateTime.Now);
String time = DateTime.Now.Hour + ":" + DateTime.Now.Minute;
DataSet ds = new DataSet();
DataSetTableAdapters.tblproductTableAdapter da = new DataSetTableAdapters.tblproductTableAdapter();
da.InsertQuery(int.Parse(txtprotitle.Text), txtprotitle.Text, txtexplain.Text, decimal.Parse(txtproprice.Text), txtprolink.Text, Session["userid"].ToString(), datetime, time);
Response.Redirect("Default.aspx");
}
这是我的数据集
INSERT INTO [tblproduct] ([pid], [title], [explain], [price], [link], [uid], [date], [time]) VALUES (@pid, @title, @explain, @price, @link, @uid, @date, @time)
你应该像这样实现:
protected void Button1_Click(object sender, EventArgs e)
{
PersianCalendar pc = new PersianCalendar();
String datetime=pc.GetYear(DateTime.Now) + "/" + pc.GetMonth(DateTime.Now) + "/" + pc.GetDayOfMonth(DateTime.Now);
String time = DateTime.Now.Hour + ":" + DateTime.Now.Minute;
DataSet ds = new DataSet();
DataSetTableAdapters.tblproductTableAdapter da = new DataSetTableAdapters.tblproductTableAdapter();
int pid;
decimal gheymat;
if(int.TryParse(txtprotitle.Text, out pid) && decimal.TryParse(txtproprice.Text, out gheymat))
{
da.InsertQuery(pid, txtprotitle.Text, txtexplain.Text, gheymat, txtprolink.Text, Session["userid"].ToString(), datetime, time);
Response.Redirect("Default.aspx");}
else{
//error with parsing
}
}
确保 Session["userid"] 不为空
从堆栈跟踪中,您的问题不在于日期,而在于这一部分:
int.Parse(txtprotitle.Text)
您需要仔细检查txtprotitle
并确保它是一个数字并且在 Int32 范围内。一种安全的处理方法(除了非常推荐的客户端验证)
int title;
if(int.TryParse(txtprotitle.Text, out title) == false)
{
// failed to convert - Do Something about it.
}
然后:
da.InsertQuery(title, txtprotitle.Text,
txtexplain.Text, decimal.Parse(txtproprice.Text),
txtprolink.Text, Session["userid"].ToString(), datetime, time);
您可能需要对txtproprice.Text
执行相同的操作,但使用 decimal.TryParse
.