Xttx
Мыслитель
(8519)
3 года назад
Попробуй это:
string sqlQery= "INSERT INTO [Users] (Surname, Name, Patronymic, Login, Password, Role, Picture) VALUES (@Surname, @Name, @Patronymic, @Login, @Password, @Role, @images)";
заменить на:
string sqlQery= "";
if (images != null)
string sqlQery= "INSERT INTO [Users] (Surname, Name, Patronymic, Login, Password, Role, Picture) VALUES (@Surname, @Name, @Patronymic, @Login, @Password, @Role, @images)";
else
string sqlQery= "INSERT INTO [Users] (Surname, Name, Patronymic, Login, Password, Role) VALUES (@Surname, @Name, @Patronymic, @Login, @Password, @Role)";
вот это:
cmd.Parameters.AddWithValue("@images", images);
на это:
if (images != null) cmd.Parameters.AddWithValue("@images", images);
А
Мудрец
(14657)
3 года назад
Во-первых, все параметры sql должны начинаться с @:
cmd.Parameters.AddWithValue("@Surname", fieldSurname.Text);
Во-вторых, если поле допускает значение null, то для sql оно должно передавать DBNull.Value:
cmd.Parameters.AddWithValue("@images", images ?? (object)DBNull.Value);
PS: AddWithValue возвращает SqlParametr, в котором можно дополнительно уточнить тип данных. Но обычно это не требуется.
byte[] images = null;
FileStream Streem = new FileStream(imgLocation, FileMode.Open, FileAccess.Read);
BinaryReader brs = new BinaryReader(Streem);
images = brs.ReadBytes((int)Streem.Length);
//SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\DatabaseDictionary.mdf;Integrated Security=True");
con.Open();
string sqlQery= "INSERT INTO [Users] (Surname, Name, Patronymic, Login, Password, Role, Picture) VALUES (@Surname, @Name, @Patronymic, @Login, @Password, @Role, @images)";
cmd = new SqlCommand(sqlQery, con);
cmd.Parameters.AddWithValue("Surname", fieldSurname.Text);
cmd.Parameters.AddWithValue("Name", fieldName.Text);
cmd.Parameters.AddWithValue("Patronymic", fieldPatronymic.Text);
cmd.Parameters.AddWithValue("Login", fieldLogin.Text);
cmd.Parameters.AddWithValue("Password", fieldPassword.Text);
cmd.Parameters.AddWithValue("Role", fieldRole.Text);
cmd.Parameters.AddWithValue("@images", images);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Вы успешно зарегистировались!");
заранее спасибо!