用c#在asp.net中保存表中的数据的问题
本文关键字:数据 问题 保存 asp net | 更新日期: 2023-09-27 17:50:33
你好,我的应用程序今天遇到了一个大问题:
我正在使用vs2008 prof与它的sql server 2005 express edition。
问题是,当我试图在一个表的行更新update. executenonquery()返回值1,这意味着有1行更新,但行不更新。
如果我试图通过打开表数据和修改字段来手动修改值,它会工作并保存,否则它什么也不做。
我也试着在不同的机器上用相同的软件套件运行它,同样的事情也试着在IIS7上运行它,问题并没有消失。
谁能给一些建议,我应该做什么,或者如果有人遇到这个问题,我真的需要帮助,我会非常感激!
后编辑:——添加源代码
int user_id = (int)Session["UserId"];
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
con.Open();
SqlCommand update = new SqlCommand("update profil_candidat set nume = @pnume, prenume = @pprenume, data_nasterii = @pdata_nasterii, id_oras = @pid_oras , adresa = @padresa where id_utilizator=@pid_utilizator",con);
update.Parameters.Add("pnume", SqlDbType.VarChar);
update.Parameters.Add("pprenume", SqlDbType.VarChar);
update.Parameters.Add("pdata_nasterii", SqlDbType.VarChar);
update.Parameters.Add("pid_oras", SqlDbType.VarChar);
update.Parameters.Add("padresa", SqlDbType.VarChar);
update.Parameters.Add("pid_utilizator",SqlDbType.Int);
int an = Convert.ToInt32(AnDropDownList.SelectedItem.Value);
int luna = Convert.ToInt32(LunaDropDownList.SelectedItem.Value);
int zi = Convert.ToInt32(ZiDropDownList.SelectedItem.Value);
DateTime data = new DateTime(an, luna, zi);
update.Parameters["pnume"].Value = TextBoxNume.Text;
update.Parameters["pprenume"].Value = TextBoxPrenume.Text;
update.Parameters["pdata_nasterii"].Value = data;
update.Parameters["pid_oras"].Value = DropDownList1.SelectedItem.Value;
update.Parameters["padresa"].Value = TextBoxAdresa.Text;
update.Parameters["pid_utilizator"].Value = int.Parse(Session["UserId"].ToString());
update.ExecuteNonQuery();
con.Close();
后续编辑
问题解决了,似乎实际上它与:
c# Update Table using SqlCommand参数ASP。净
有人忘记在if(page . ispostback)的页面加载中放置表单初始化,数据库没有任何问题,但在语句中发送的参数总是在事件上预加载…还是谢谢你的及时回答!
上次我遇到这个是一个权限问题。不管什么原因,SQL服务器没有返回正确的错误信息,而是表明底层表正在更新…即使它不是。
使用与web.config中相同的凭据连接到SQL Express实例。然后执行相同的查询,看看会发生什么。
如果executeNonQuery
返回1,那么它可能在某处成功更新,否则你应该得到一个异常抛出或它将返回0
。检查您的网络连接字符串。配置并验证您的站点是否指向您认为的数据库。
:
你的连接字符串Data Source=.'SQLEXPRESS
的一部分意味着你正在连接到本地主机上名为SQLEXPRESS
的SQL Server实例,所以如果你将你的项目部署到不同的计算机,它将不再连接到相同的。mdf文件,存储在你的计算机上,它将使用。mdf文件在另一台计算机上。有关使用User Instance数据库和从Server Management Studio连接到它的更多详细信息,请参阅MSDN博客文章:
在Management Studio中连接SQL Express用户实例