asp.net vs2005 asp:FormView 数据插入问题,和并发问题 使用asp:FormView 数据源为 sqldataSource,在插入新数据有时点一下按钮不好使,数据插不进去,有时点一下又好使,不知咋回事?另外在多人同时插入数据时,发现数据串了,就是我插的数据关联到你的数据上去了?,这也许是并发问题吧求解 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <asp:FormView ID="FormViewdetail" DataKeyNames="IXH" DataSourceID="SqlDataSource1" runat="server" HeaderText="委托单详细信息:" Width="100%" OnDataBound="FormViewdetail_DataBound" > <EditItemTemplate></EmptyDataTemplate> </asp:FormView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:connstring %>" InsertCommand="INSERT INTO [TJSCL001] ([CWTDBH], [VKHBH], [VWTR], [VWTRDH], [DWTRQ], [CJSR],[VJSRDH], [CSJHXC], [CKHSFGZ], [CLX],[CKS], [NHJ]) VALUES (@CWTDBH, @VKHBH, @VWTR, @VWTRDH, @DWTRQ ,cast(@CJSR as char), @VJSRDH, cast(@CSJHXC as char), cast(@CKHSFGZ as char), cast(@CLX as char),@CKS, cast(@NHJ as numeric(10,2)))" UpdateCommand="UPDATE [TJSCL001] SET [CWTDBH] = @CWTDBH, [VKHBH] = @VKHBH, [VWTR] = @VWTR, [VWTRDH] = @VWTRDH, [DWTRQ] = @DWTRQ, [CJSR] = cast(@CJSR as char),[VJSRDH] = @VJSRDH, [CSJHXC] = cast(@CSJHXC as char), [CKHSFGZ] = cast(@CKHSFGZ as char), [CLX] = cast(@CLX as char),[CKS] = @CKS, [NHJ] = cast(@NHJ as numeric(10,2)) WHERE [IXH] = @IXH"> <UpdateParameters> <asp:Parameter Name="CWTDBH" Type="String" /> <asp:Parameter Name="VKHBH" Type="String" /> <asp:Parameter Name="VWTR" Type="String" /> <asp:Parameter Name="VWTRDH" Type="String" /> <asp:Parameter Name="DWTRQ" Type="String" /> <asp:Parameter Name="CJSR" Type="String" /> <asp:Parameter Name="VJSRDH" Type="String" /> <asp:Parameter Name="CSJHXC" Type="String" /> <asp:Parameter Name="CKHSFGZ" Type="String" /> <asp:Parameter Name="CLX" Type="String" /> <asp:Parameter Name="CKS" Type="String" /> <asp:Parameter Name="NHJ" Type="String" /> <asp:Parameter Name="IXH" Type="Int32" /> </UpdateParameters> <InsertParameters> <asp:Parameter Name="CWTDBH" Type="String" /> <asp:Parameter Name="VKHBH" Type="String" /> <asp:Parameter Name="VWTR" Type="String" /> <asp:Parameter Name="VWTRDH" Type="String" /> <asp:Parameter Name="DWTRQ" Type="String" /> <asp:Parameter Name="CJSR" Type="String" /> <asp:Parameter Name="VJSRDH" Type="String" /> <asp:Parameter Name="CSJHXC" Type="String" /> <asp:Parameter Name="CKHSFGZ" Type="String" /> <asp:Parameter Name="CLX" Type="String" /> <asp:Parameter Name="CKS" Type="String" /> <asp:Parameter Name="NHJ" Type="String" /> </InsertParameters> </asp:SqlDataSource> cs文件: protected void insertdata_click(object sender, EventArgs e) { try { string CWTDBH = ""; string VKHBH = ""; string VKHMC = ""; string VWTR = ""; string VWTRDH = ""; string DWTRQ = ""; string CJSR = ""; string VJSRDH = ""; string CSJHXC = ""; string CKHSFGZ = ""; string CLX = ""; string CKS = ""; string NHJ = ""; string js; bool bl = true; string connStr = ConfigurationManager.ConnectionStrings[connstring].ConnectionString; if (((TextBox)FormViewdetail.FindControl("CWTDBHTextBox")) != null) { CWTDBH = ((TextBox)FormViewdetail.FindControl("CWTDBHTextBox")).Text; //Response.Write(CWTDBH); } if (((HiddenField)FormViewdetail.FindControl("VKHBHhf")) != null) { VKHBH = ((HiddenField)FormViewdetail.FindControl("VKHBHhf")).Value; //Response.Write(VKHBH); } if (((TextBox)FormViewdetail.FindControl("VKHBHTextBox")) != null) { VKHMC = ((TextBox)FormViewdetail.FindControl("VKHBHTextBox")).Text; //Response.Write(VKHMC); } if (((TextBox)FormViewdetail.FindControl("VWTRTextBox")) != null) { VWTR = ((TextBox)FormViewdetail.FindControl("VWTRTextBox")).Text; //Response.Write(VWTR); } if (((TextBox)FormViewdetail.FindControl("VWTRDHTextBox")) != null) { VWTRDH = ((TextBox)FormViewdetail.FindControl("VWTRDHTextBox")).Text; //Response.Write(VWTRDH); } if (((TextBox)FormViewdetail.FindControl("DWTRQTextBox")) != null) { DWTRQ = ((TextBox)FormViewdetail.FindControl("DWTRQTextBox")).Text; //Response.Write(DWTRQ); } if (((HiddenField)FormViewdetail.FindControl("HFCJSR")) != null) { CJSR = ((HiddenField)FormViewdetail.FindControl("HFCJSR")).Value; //Response.Write(CJSR); } if (((TextBox)FormViewdetail.FindControl("VJSRDHTextBox")) != null) { VJSRDH = ((TextBox)FormViewdetail.FindControl("VJSRDHTextBox")).Text; //Response.Write(VJSRDH); } if (((DropDownList)FormViewdetail.FindControl("DDLCSJHXC")) != null) { CSJHXC = ((DropDownList)FormViewdetail.FindControl("DDLCSJHXC")).SelectedValue; // Response.Write(CSJHXC); } if (((DropDownList)FormViewdetail.FindControl("DDLCKHSFGZ")) != null) { CKHSFGZ = ((DropDownList)FormViewdetail.FindControl("DDLCKHSFGZ")).SelectedValue; //Response.Write(CKHSFGZ); } if (((DropDownList)FormViewdetail.FindControl("DDLCLX")) != null) { CLX = ((DropDownList)FormViewdetail.FindControl("DDLCLX")).SelectedValue; //Response.Write(CLX); } if (((DropDownList)FormViewdetail.FindControl("DDLks")) != null) { CKS = ((DropDownList)FormViewdetail.FindControl("DDLks")).SelectedValue; //Response.Write(CKS); } if (((TextBox)FormViewdetail.FindControl("NHJTextBox")) != null) { NHJ = ((TextBox)FormViewdetail.FindControl("NHJTextBox")).Text; //Response.Write(NHJ); } if (CWTDBH.Equals("")) { js = "<script language=javascript> alert(\"请输入委托单编号!\");</script>"; Page.RegisterStartupScript("Setfirstfocus", js); FormViewdetail.DefaultMode = FormViewMode.Insert; bl = false; return; } else { string SqlStr = "SELECT a.IXH FROM TJSCL001 a where a.CWTDBH='" + CWTDBH + "'"; SqlConnection conn = new SqlConnection(connStr); //if (conn.State.ToString() == "Closed") conn.Open(); //创建一个SqlCommand SqlCommand myCommand = new SqlCommand(SqlStr, conn); myCommand.Connection.Open(); SqlDataReader myReader = myCommand.ExecuteReader(); while (myReader.HasRows) { js = "<script language=javascript> alert(\"该委托单编号已存在!\");</script>"; Page.RegisterStartupScript("Setfirstfocus", js); myCommand.Connection.Close(); return; } myCommand.Connection.Close(); } if (CJSR.Equals("")) { js = "<script language=javascript> alert(\"请选择接受人!\");</script>"; Page.RegisterStartupScript("Setfirstfocus", js); FormViewdetail.DefaultMode = FormViewMode.Insert; bl = false; return; } if (!NHJ.Equals("")) { Match m = Regex.Match(NHJ, @"^\d+(\.\d{1,2})?$"); if (m.Success) { } else { js = "<script language=javascript > {alert(\"请您输入合计数,格式为###.00!\");}</script>"; Page.RegisterStartupScript("Setfirstfocus", js); FormViewdetail.DefaultMode = FormViewMode.Edit; bl = false; return; } } else { NHJ = "0"; } if (bl) { //Convert.ToDecimal(NHJ); SqlDataSource1.InsertParameters[0].DefaultValue = CWTDBH; SqlDataSource1.InsertParameters[1].DefaultValue = VKHBH; SqlDataSource1.InsertParameters[2].DefaultValue = VWTR; SqlDataSource1.InsertParameters[3].DefaultValue = VWTRDH; SqlDataSource1.InsertParameters[4].DefaultValue = DWTRQ.ToString(); SqlDataSource1.InsertParameters[5].DefaultValue = CJSR; SqlDataSource1.InsertParameters[6].DefaultValue = VJSRDH; SqlDataSource1.InsertParameters[7].DefaultValue = CSJHXC; SqlDataSource1.InsertParameters[8].DefaultValue = CKHSFGZ; SqlDataSource1.InsertParameters[9].DefaultValue = CLX; SqlDataSource1.InsertParameters[10].DefaultValue = CKS; SqlDataSource1.InsertParameters[11].DefaultValue = NHJ; SqlDataSource1.Insert(); } GridViewBind(); FormViewdetail.ChangeMode(FormViewMode.ReadOnly); formviewbind(); } catch (Exception ex) { } } protected void InsertCancelButton_click(object sender, EventArgs e) { FormViewdetail.ChangeMode(FormViewMode.ReadOnly); formviewbind(); } 可能这里myReader没有关闭造成的,多次操作后没有关闭 SqlDataReader myReader = myCommand.ExecuteReader(); while (myReader.HasRows) { js = "<script language=javascript> alert(\"该委托单编号已存在!\");</script>"; Page.RegisterStartupScript("Setfirstfocus", js); myCommand.Connection.Close(); return; } myReader.close();//增加这个,反正有SqlDataReader 地方一定要关闭呀 myCommand.Connection.Close(); 因为你没有关掉Read,关掉之后先试试能不能解决,点俩次才插入,可能一次已经正在操作比较慢吧, GridViewBind是否重新查询了数据? 各位大侠,我在用js给aspx页面传字符串的时候,怎么已到有"#"字符的时候就丢了呀 js 关于日期的正则表达式 Repeater 数据上移 下移 有关FreeTextBox的问题 一个关于HTML 的问题 *W*200分请问象CSDN这样的论坛的缓存怎么做的? 程序告急~!请教高手~ (300分) Repeater中文本框的计算 请帮我看看这个问题??? 调用存储过程 一个服务器同时开N个网站的问题 字符串截取
<EditItemTemplate>
</EmptyDataTemplate>
</asp:FormView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:connstring %>"
InsertCommand="INSERT INTO [TJSCL001] ([CWTDBH], [VKHBH], [VWTR], [VWTRDH], [DWTRQ], [CJSR],[VJSRDH], [CSJHXC], [CKHSFGZ], [CLX],[CKS], [NHJ]) VALUES (@CWTDBH, @VKHBH, @VWTR, @VWTRDH, @DWTRQ ,cast(@CJSR as char), @VJSRDH, cast(@CSJHXC as char), cast(@CKHSFGZ as char), cast(@CLX as char),@CKS, cast(@NHJ as numeric(10,2)))"
UpdateCommand="UPDATE [TJSCL001] SET [CWTDBH] = @CWTDBH, [VKHBH] = @VKHBH, [VWTR] = @VWTR, [VWTRDH] = @VWTRDH, [DWTRQ] = @DWTRQ, [CJSR] = cast(@CJSR as char),[VJSRDH] = @VJSRDH, [CSJHXC] = cast(@CSJHXC as char), [CKHSFGZ] = cast(@CKHSFGZ as char), [CLX] = cast(@CLX as char),[CKS] = @CKS, [NHJ] = cast(@NHJ as numeric(10,2)) WHERE [IXH] = @IXH">
<UpdateParameters>
<asp:Parameter Name="CWTDBH" Type="String" />
<asp:Parameter Name="VKHBH" Type="String" />
<asp:Parameter Name="VWTR" Type="String" />
<asp:Parameter Name="VWTRDH" Type="String" />
<asp:Parameter Name="DWTRQ" Type="String" />
<asp:Parameter Name="CJSR" Type="String" />
<asp:Parameter Name="VJSRDH" Type="String" />
<asp:Parameter Name="CSJHXC" Type="String" />
<asp:Parameter Name="CKHSFGZ" Type="String" />
<asp:Parameter Name="CLX" Type="String" />
<asp:Parameter Name="CKS" Type="String" />
<asp:Parameter Name="NHJ" Type="String" />
<asp:Parameter Name="IXH" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="CWTDBH" Type="String" />
<asp:Parameter Name="VKHBH" Type="String" />
<asp:Parameter Name="VWTR" Type="String" />
<asp:Parameter Name="VWTRDH" Type="String" />
<asp:Parameter Name="DWTRQ" Type="String" />
<asp:Parameter Name="CJSR" Type="String" />
<asp:Parameter Name="VJSRDH" Type="String" />
<asp:Parameter Name="CSJHXC" Type="String" />
<asp:Parameter Name="CKHSFGZ" Type="String" />
<asp:Parameter Name="CLX" Type="String" />
<asp:Parameter Name="CKS" Type="String" />
<asp:Parameter Name="NHJ" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
protected void insertdata_click(object sender, EventArgs e)
{
try
{
string CWTDBH = "";
string VKHBH = "";
string VKHMC = "";
string VWTR = "";
string VWTRDH = "";
string DWTRQ = "";
string CJSR = "";
string VJSRDH = "";
string CSJHXC = "";
string CKHSFGZ = "";
string CLX = "";
string CKS = "";
string NHJ = "";
string js;
bool bl = true;
string connStr = ConfigurationManager.ConnectionStrings[connstring].ConnectionString;
if (((TextBox)FormViewdetail.FindControl("CWTDBHTextBox")) != null)
{
CWTDBH = ((TextBox)FormViewdetail.FindControl("CWTDBHTextBox")).Text;
//Response.Write(CWTDBH);
}
if (((HiddenField)FormViewdetail.FindControl("VKHBHhf")) != null)
{
VKHBH = ((HiddenField)FormViewdetail.FindControl("VKHBHhf")).Value;
//Response.Write(VKHBH);
}
if (((TextBox)FormViewdetail.FindControl("VKHBHTextBox")) != null)
{
VKHMC = ((TextBox)FormViewdetail.FindControl("VKHBHTextBox")).Text;
//Response.Write(VKHMC);
}
if (((TextBox)FormViewdetail.FindControl("VWTRTextBox")) != null)
{
VWTR = ((TextBox)FormViewdetail.FindControl("VWTRTextBox")).Text;
//Response.Write(VWTR);
}
if (((TextBox)FormViewdetail.FindControl("VWTRDHTextBox")) != null)
{
VWTRDH = ((TextBox)FormViewdetail.FindControl("VWTRDHTextBox")).Text;
//Response.Write(VWTRDH);
}
if (((TextBox)FormViewdetail.FindControl("DWTRQTextBox")) != null)
{
DWTRQ = ((TextBox)FormViewdetail.FindControl("DWTRQTextBox")).Text;
//Response.Write(DWTRQ);
}
if (((HiddenField)FormViewdetail.FindControl("HFCJSR")) != null)
{
CJSR = ((HiddenField)FormViewdetail.FindControl("HFCJSR")).Value;
//Response.Write(CJSR);
} if (((TextBox)FormViewdetail.FindControl("VJSRDHTextBox")) != null)
{
VJSRDH = ((TextBox)FormViewdetail.FindControl("VJSRDHTextBox")).Text;
//Response.Write(VJSRDH);
}
if (((DropDownList)FormViewdetail.FindControl("DDLCSJHXC")) != null)
{
CSJHXC = ((DropDownList)FormViewdetail.FindControl("DDLCSJHXC")).SelectedValue;
// Response.Write(CSJHXC);
}
if (((DropDownList)FormViewdetail.FindControl("DDLCKHSFGZ")) != null)
{
CKHSFGZ = ((DropDownList)FormViewdetail.FindControl("DDLCKHSFGZ")).SelectedValue;
//Response.Write(CKHSFGZ);
}
if (((DropDownList)FormViewdetail.FindControl("DDLCLX")) != null)
{
CLX = ((DropDownList)FormViewdetail.FindControl("DDLCLX")).SelectedValue;
//Response.Write(CLX);
}
if (((DropDownList)FormViewdetail.FindControl("DDLks")) != null)
{
CKS = ((DropDownList)FormViewdetail.FindControl("DDLks")).SelectedValue;
//Response.Write(CKS);
}
if (((TextBox)FormViewdetail.FindControl("NHJTextBox")) != null)
{
NHJ = ((TextBox)FormViewdetail.FindControl("NHJTextBox")).Text;
//Response.Write(NHJ);
}
if (CWTDBH.Equals(""))
{
js = "<script language=javascript> alert(\"请输入委托单编号!\");</script>";
Page.RegisterStartupScript("Setfirstfocus", js);
FormViewdetail.DefaultMode = FormViewMode.Insert;
bl = false;
return;
}
else
{
string SqlStr = "SELECT a.IXH FROM TJSCL001 a where a.CWTDBH='" + CWTDBH + "'";
SqlConnection conn = new SqlConnection(connStr);
//if (conn.State.ToString() == "Closed") conn.Open();
//创建一个SqlCommand
SqlCommand myCommand = new SqlCommand(SqlStr, conn); myCommand.Connection.Open(); SqlDataReader myReader = myCommand.ExecuteReader();
while (myReader.HasRows)
{
js = "<script language=javascript> alert(\"该委托单编号已存在!\");</script>";
Page.RegisterStartupScript("Setfirstfocus", js);
myCommand.Connection.Close();
return; }
myCommand.Connection.Close();
}
if (CJSR.Equals(""))
{
js = "<script language=javascript> alert(\"请选择接受人!\");</script>";
Page.RegisterStartupScript("Setfirstfocus", js);
FormViewdetail.DefaultMode = FormViewMode.Insert;
bl = false;
return;
}
if (!NHJ.Equals(""))
{
Match m = Regex.Match(NHJ, @"^\d+(\.\d{1,2})?$");
if (m.Success)
{ }
else
{
js = "<script language=javascript > {alert(\"请您输入合计数,格式为###.00!\");}</script>";
Page.RegisterStartupScript("Setfirstfocus", js);
FormViewdetail.DefaultMode = FormViewMode.Edit;
bl = false;
return;
}
}
else { NHJ = "0"; }
if (bl)
{ //Convert.ToDecimal(NHJ);
SqlDataSource1.InsertParameters[0].DefaultValue = CWTDBH;
SqlDataSource1.InsertParameters[1].DefaultValue = VKHBH;
SqlDataSource1.InsertParameters[2].DefaultValue = VWTR;
SqlDataSource1.InsertParameters[3].DefaultValue = VWTRDH;
SqlDataSource1.InsertParameters[4].DefaultValue = DWTRQ.ToString();
SqlDataSource1.InsertParameters[5].DefaultValue = CJSR;
SqlDataSource1.InsertParameters[6].DefaultValue = VJSRDH;
SqlDataSource1.InsertParameters[7].DefaultValue = CSJHXC;
SqlDataSource1.InsertParameters[8].DefaultValue = CKHSFGZ;
SqlDataSource1.InsertParameters[9].DefaultValue = CLX;
SqlDataSource1.InsertParameters[10].DefaultValue = CKS;
SqlDataSource1.InsertParameters[11].DefaultValue = NHJ; SqlDataSource1.Insert();
} GridViewBind();
FormViewdetail.ChangeMode(FormViewMode.ReadOnly);
formviewbind();
}
catch (Exception ex)
{
} } protected void InsertCancelButton_click(object sender, EventArgs e)
{
FormViewdetail.ChangeMode(FormViewMode.ReadOnly);
formviewbind();
}
SqlDataReader myReader = myCommand.ExecuteReader();
while (myReader.HasRows)
{
js = "<script language=javascript> alert(\"该委托单编号已存在!\");</script>";
Page.RegisterStartupScript("Setfirstfocus", js);
myCommand.Connection.Close();
return; }
myReader.close();//增加这个,反正有SqlDataReader 地方一定要关闭呀
myCommand.Connection.Close();