您的位置:首页 > 编程语言 > ASP

asp.net新建表单保存和提交的问题解决方案

2015-11-11 10:25 483 查看
问题描述:

作为信息管理系统,表单的新建页面,包括保存和提交操作。作为使用者,不知道编程的机制,如何保证使用保存和提交按钮,都能保证数据正确写入数据库中,如何消除两者之间的差异,给用户的感觉是两者之间都是一样的方便、准确和快捷?

这里给出了一种解决方案。通过在页面放置一个隐藏的label标签,本标签主要用于保存插入语句返回的自增长id的值,并设置其初始值为“None"。然后,在保存中根据隐藏标签的值,判断使用数据库插入语句,还是数据库更新语句。

下面是保存公用函数的C#代码实现:

private int SaveDataInfo(string state, string msg)
{
Dictionary<string, string> tableKeyVals = new Dictionary<string, string>();
ArrayList temp = new ArrayList();
GetAllControlKeyVals(this, tableKeyVals, ref temp);//获取信息
if ("None" == lb_none_approvalID.Text)
{//执行插入操作
if (dataInsertDb(tableKeyVals, state) > 0)
{
MyClientScript.ygJScript.Alert(msg + "成功", this);
userCtr1.SetTableKeyValue(lb_none_approvalID.Text);//上传设置3
return 1;
}
else
{
MyClientScript.ygJScript.Alert(msg + "失败", this);
return 0;
}
}
else
{//执行更新操作
if (dataUpdateDb(tableKeyVals, state) > 0)
{
MyClientScript.ygJScript.Alert(msg + "成功", this);
return 1;
}
else
{
MyClientScript.ygJScript.Alert(msg + "失败", this);
return 0;
}
}
}下面是UPdate和Insert语句结合可输入元素键值对字典对象,实现的数据的更新和插入操作的代码实现的例子。
private int dataUpdateDb(Dictionary<string, string> tableKeyVals, string state)
{
string sql = "update tb_approval set ";
foreach (KeyValuePair<string, string> item in tableKeyVals)
{
sql += item.Key.Split('_')[1] + "='" + item.Value + "',";
}
sql += "addTime='" + DateTime.Now.ToString() + "',state='" + state + "' where approvalID='" + lb_none_approvalID.Text + "'";
if (MyDBInterface.getNothingByText(sql) > 0)
{
return 1;
}
else
{
return 0;
}
}

private int dataInsertDb(Dictionary<string, string> tableKeyVals, string state)
{
string sql = "insert into tb_approval(";
string sqlTemp = " values('";
foreach (KeyValuePair<string, string> item in tableKeyVals)
{
sql += item.Key.Split('_')[1] + ",";
sqlTemp += item.Value + "','";
}
sql += "addUserID,addUserName,addTime,state)";
sqlTemp += user.UserID + "','" + user.UserName + "','" + DateTime.Now.ToString() + "','" + state + "');select SCOPE_IDENTITY()";
sql += sqlTemp;//拼凑到完成sql语句

DataTable resDt = MyDBInterface.getTableByText(sql);
if (resDt != null && resDt.Rows.Count > 0)
{
lb_none_approvalID.Text = resDt.Rows[0][0].ToString();//记录插入后的返回ID
return 1;
}
else
{
return 0;
}
}

至此,整个的数据表单的保存和提交操作基本完成。最后的工作就是如何在保存和提交时,正确的调用函数做出判断。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息