.net 通过windows应用程序更新数据库时出现问题
我有个问题 使用Windows窗体(Visual Studio项目)更新SQL数据库中的数据时遇到问题 以下是我的工作:.net 通过windows应用程序更新数据库时出现问题,.net,database,winforms,.net,Database,Winforms,我有个问题 使用Windows窗体(Visual Studio项目)更新SQL数据库中的数据时遇到问题 以下是我的工作: 我在文本框中获取用户信息 我编辑了其中一些 我不想再回到这张表格。信息已更新 当我退出并再次登录时,它会显示旧数据 似乎它暂时更改了数据库。我需要设置任何属性或什么吗 我正在使用win应用程序。。我在上面保留了一个反向链接,它将我带到上一张表格。 看看会发生什么 我有两个按钮showUserInfo和SaveUserInfo.好吗 单击showUserInfo从db检索数
- 我在文本框中获取用户信息
- 我编辑了其中一些李>
- 我不想再回到这张表格。信息已更新李>
- 当我退出并再次登录时,它会显示旧数据李>
//This the code for my form's save button as u can c....
private void btnSave_Click(object sender, EventArgs e)
{
string fName = txtFirstName.Text;
string lName = txtLastName.Text;
string gender;
if (rdbtnMale.Checked == true)
{
gender = "Male";
}
else
{
gender = "Female";
}
string email = txtEmail.Text;
int age = Convert.ToInt16(txtAge.Text);
string address = txtAddress.Text;
int flag;
// here i call the DAL function.....
flag = SHSProvider.UpdateUserInfo(userName, fName, lName, gender, email, age, address);
if (flag == 1)
{
MessageBox.Show("Your Account Has been changed successfully");
}
else
{
MessageBox.Show("Sorry");
}
}
//........................
// this is the update function in my provider...
public static int UpdateUserInfo(string userName, string fName, string lName, string gender, string email, int age, string address)
{
string strconn = ConfigurationManager.ConnectionStrings["SHSDatabaseConnectionString"].ToString();
SqlParameter[] sqlparams = new SqlParameter[7];
sqlparams[0] = new SqlParameter("@userName", userName);
sqlparams[1] = new SqlParameter("@firstName", fName);
sqlparams[2] = new SqlParameter("@lastName", lName);
sqlparams[3] = new SqlParameter("@gender", gender);
sqlparams[4] = new SqlParameter("@email", email);
sqlparams[5] = new SqlParameter("@age", age);
sqlparams[6] = new SqlParameter("@address", address);
int flag = SqlHelper.ExecuteNonQuery(strconn, "sp_UpdateUserInfo", sqlparams);
return flag;
}
//最后这是我的存储过程
ALTER PROCEDURE dbo.sp_UpdateUserInfo
@userName nvarchar(30),
@fName nvarchar(30),
@lName nvarchar(30),
@gender nvarchar(10),
@email nvarchar(30),
@age int,
@address nvarchar(30)
AS
update [T_UserInfo] set [FirstName] = @fName, [LastName] = @lName, [Gender] = @gender, [email] = @email, [Age] = @age, [Address] = @address where [UserName] = @userName
RETURN
请帮忙
谢谢您是如何检索数据的?听起来您可能实际上并没有将数据提交到数据库,而是将其保存在本地 如果您使用的是DataReader,请确保您不仅仅更新检索到的数据,而是更新数据,然后将更改提交到数据库
编辑:您说“do 1 back”,听起来好像您正在使用ASP.Net应用程序(即使您声明它是windows窗体应用程序)。您是否可能没有清除文本框中的日期,因此看起来好像数据库已更新,即使您尚未将更改提交到数据库?我认为Zim正在使用自动生成的数据集以及Winforms控件。要以自动生成的形式将数据发送回数据库,是否单击“保存”按钮,Zim?看起来您正在使用数据集。保存后,它会保存到DataSet中,但DataSet尚未更新到DB中。这就是为什么在下一个应用程序实例上显示旧数据的原因 您需要在DataSet上执行ds.Update() 有一件事要记住计算机永远不会出错,那就是制造错误的人。:)
如果你能粘贴你的代码,那会更有帮助。我认为你可以只修改局部变量中的数据(可能是nils_gate指出的数据集),而不将数据保存到数据库中。保存功能中的代码是什么
如果您使用事务更新数据而未提交事务,也可能会发生这种情况。更新后是否手动运行查询以确保更新正在进行?需要了解有关如何实现数据访问的更多信息自动生成的数据集是什么意思?我正在使用存储过程。你能看看我贴的代码吗。请帮帮我。