У меня есть вопрос.
У меня проблемы с обновлением данных в базе данных SQL с помощью Windows Forms (проект Visual Studio).
Вот что я делаю:
- Я получаю информацию о пользователе в текстовых полях.
- Я редактирую некоторые из них.
- Я делаю 1 назад и снова попадаю в эту форму. Информация обновлена.
- При выходе и повторном входе в систему отображаются старые данные!
Кажется, что он временно меняет базу данных. Нужно ли устанавливать какие-либо свойства или что-то еще?
Я использую приложение win ... и сохранил обратную ссылку, которая возвращает меня к предыдущей форме.
посмотрим, что произойдет
У меня есть две кнопки showUserInfo и SaveUserInfo..ok?
Нажатие на showUserInfo извлекает данные из БД и отображает их в форме.
, затем скажите, что я редактирую возраст или адрес пользователя и нажимаю кнопку saveUserInfo. Это возвращает мне успех.
Теперь я снова нажимаю на ShowUserInfo, и он возвращает мне информацию, которую я только что обновил. Даже если я перехожу к предыдущей форме, а затем снова к этой форме, я могу c обновленной информацией. Пока я нахожусь в одном запуске приложения, я могу c обновленной информацией.
Теперь, когда я выйду из приложения методом .close (). и снова запустите приложение, оно показывает мне старую информацию, это означает, что БД не была обновлена.
когда я открываю таблицу userInfo, она не обновляется.
мои кнопки сохранения и показа вызывают функции уровня доступа к данным, которые, в свою очередь, вызывают хранимые процедуры. Я не использовал никаких читателей данных
Вот что я делаю:
//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
Пожалуйста, помогите!
Спасибо