如何使用文本框从数据库编辑/更新记录?
我有一个问题,我想你的帮助。我在我的页面中有一个编辑按钮和文本框。我想从数据库中编辑一条记录到这些文本框。我编写了下面的代码,当我点击编辑按钮时,我得到了结果。结果加载到我的文本框中。但是当我再次尝试第二次运行具有相同ID的页面时,则出现此错误“指定的转换无效”。出了什么问题?我用int ID = 3;以获得第三记录在该示例如何使用文本框从数据库编辑/更新记录?
保护无效Button2_Click(对象发件人,EventArgs的)
{
DataClassesDataContext CXT =新DataClassesDataContext(); USER_TABLE aChar = cxt.USER_TABLEs.Single(c => c.ID == 3); //获取单个记录
fname2.Text = aChar.FIRST_NAME;
lname2.Text = aChar.LAST_NAME;
pob2.Text = aChar.PLACE_OF_BIRTH;
pom2.Text = aChar.PLACE_OF_MARRIAGE;
education2.Text = aChar.EDUCATION;
occupation2.Text = aChar.OCCUPATION;
pod2.Text = aChar.PLACE_OF_DEATH;
String str = aChar.DATE_OF_BIRTH.ToString();
String str1 = aChar.DATE_OF_MARRIAGE.ToString();
String str2 = aChar.DATE_OF_DEATH.ToString();
你为什么这样做在事件处理代码if (!Page.IsPostBack)
?
我会说,正常的事件时回后,才会引发...
我很少看到比pageLoad的任何其他的IsPostBack使用。
看来,你取你的对象(使用单)时,得到一个指定的转换异常。您可能希望检查对象模型和数据库之间的数据类型,以确保该对象在数据库使用字符串的位置不需要数字(反之亦然)。另外,请检查对象和数据库列的可空性。绑定时,LINQ to SQL不支持隐式类型转换。
至于为什么它正在处理第一个请求,而不是第二个,请求之间发生了什么变化?此外,这两个请求之间的上下文是否保持活跃?当第二次请求相同的ID时,单缓存所提取的值并使查询管道短路,因此对于Single,如果环境保持活动状态,则只应看到一个数据库请求。尝试使用ctx.Log = Console.Out记录数据库请求,或者使用SQL Profiler(如果有)。
你的问题与LINQ没有任何关系。我会编辑你的问题。 – 2011-03-21 09:52:21
斯蒂芬 - 他正在使用Linq-to-sql - 所以也许删除sql和linq并将linq-to-sql放入? – Stuart 2011-03-21 09:56:05
您确实有一个LINQ调用(.Single),但它显然不会导致问题,因为您的站点在异常时没有失败(如果该LINQ调用失败,Single将引发异常) - 否则您将看到一个错误输出,而不是相同的页面。 – 2011-03-21 09:57:23