1
我想从gridview中插入记录,当用户在动态创建的行中选择名称并单击按钮保存。但有时记录可以保存,大部分时间不是。我的编程逻辑有问题吗?希望help.Thanks。在asp.net中插入记录
前端代码
<td>
<asp:Button ID="btnSave" runat="server" Text="Save" CssClass="btn btn-primary" Style="margin-top: 5px; margin-left: 150px" OnClick="btnSave_Click" /></td>
后端代码
protected void btnSave_Click(object sender, EventArgs e)
{
grid2.SaveSelectionToViewState();
string Branch = txtBranch.Text.Trim();
string Name = txtName.Text.Trim();
string sql = "";
string Slmn = "";
DBHandler dbh = new DBHandler();
string active;
if (checkbox_id.Checked)
{
active = "1";
}
else
{
active = "0";
}
try
{
if (Branch != "" && Name != "")
{
dbh.OpenConnection();
for (int i = 0; i < grid2.Rows.Count; i++)
{
Slmn = ((TextBox)grid2.Rows[i].Cells[1].FindControl("TextBox1")).Text.Trim();
sql = "Insert into fcs_cotmdl (crdt,crid,cono,tmdl,slmn,acti) values (sysdate,'SYSTEM','" + Branch + "','";
sql += Name + "','" + Slmn + "','" + active + "')";
dbh.ExecuteNonQuery(sql);
dbh.TransactionCommit();
Page.ClientScript.RegisterStartupScript(this.GetType(), "Scripts", "<script>alert('Saved');</script>");
}
}
else
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "Scripts", "<script>alert('Please fill in the Branch Code or Team Leader Name');</script>");
}
}
catch (Exception exp)
{
dbh.TransactionRollBack();
}
finally
{
dbh.CloseConnection();
}
checkbox_id.Checked = false;
txtBranch.Text = "";
txtName.Text = "";
grid2.DataBind();
SetInitialRow();
}
在你的表fcs_cotmdl结构中列slmn可以有null或空值吗? – Prabhat
@Suprabhat谢谢reply.yes..it可以为null – Jan
通过查看代码,它似乎一切都会正常工作,直到除非(((TextBox)grid2.Rows [i] .Cells [1] .FindControl(“TextBox1 “)).Text.Trim()'这一行产生一个空的异常。此外,您还可以使用** try..catch **块来阻止您获取自定义错误页面。尝试评论try catch并再次运行。如果出现任何异常,请遵循堆栈跟踪。 – Prabhat