Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Meowizzy
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 32
1

Сохранение информации в базу данных

24.01.2016, 11:34. Просмотров 1778. Ответов 36
Метки нет (Все метки)

Создаю бд в wpf С# Нужно чтобы в texbox пользователь вводил информацию о себе и она сохранялась в базе данных
К примеру фио телефон адрес сколько лет
Помогите пожалуйста это сделать если есть у кого готовая приложение дайте пожалуйста
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2016, 11:34
Ответы с готовыми решениями:

Сохранение данных из datagridview в базу данных под MS sql server 2012
Доброго времени суток. Делаю курсовую, и до этого момента думал, что самое...

Сохранение данных в базу данных SQL Server
Есть база данных LocalDB с одной таблицей Notice. Так же есть две формы: одна с...

Сохранение данных, добавленных в базу данных access
Помогите сделать сохранение добавленных данных в бд, при перезапуске программы...

Сохранение в базу данных
Здравствуйте. Подскажите пожалуйста как сделать следующее: Исходные...

Сохранение изменений в базу данных
Здравствуйте, уважаемые программисты! Я начал первые шаги в освоении баз...

36
ILKarina
19 / 18 / 14
Регистрация: 06.03.2013
Сообщений: 335
Завершенные тесты: 2
27.01.2016, 04:34 2
Лучший ответ Сообщение было отмечено Meowizzy как решение

Решение

За Вас,Meowizzy, никто не собирается делать приложение... но вот помочь написать это всегда пожалуйста.
Если у Вас есть наработки по коду, то пожалуйста выкладывайте сюда. Всем будет легче.
А как пример я могу дать вам следующее:
Допустим у нас есть некая форма с датагридом которая выводит данные
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
     <Grid>
        <StackPanel MaxHeight="320" x:Name="content">
            <StackPanel Orientation="Horizontal" x:Name="dataform" Width="530">
                <TextBox x:Name="FIO" Width="300" Margin="5,10,5,0"/>
                <TextBox x:Name="telephone" Width="100" Margin="0,10,5,0"/>
                <DatePicker x:Name="birthdate" Margin="0,10,5,0"/>
            </StackPanel>
            <Button x:Name="Save" Content="Сохранить" Margin="10,5"/>
            <ScrollViewer x:Name="datascroll" ScrollViewer.VerticalScrollBarVisibility="Auto">
                <DataGrid x:Name="data" AutoGenerateColumns="False" IsReadOnly="True">
                <DataGrid.Columns>                    
                    <DataGridTextColumn Header="ФИО" Binding="{Binding FIO}"/>
                    <DataGridTextColumn Header="Телефон" Binding="{Binding telephone}"/>
                    <DataGridTextColumn Header="Возраст" Binding="{Binding age}"/>
                </DataGrid.Columns>
            </DataGrid>
            </ScrollViewer>            
        </StackPanel>        
    </Grid>

для datagrid'а модель получается такая
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
class DataModel
    {
        public string FIO { get; set; }
        public string telephone { get; set; }
        public string age { get; set; } 
    }

И его коллекция
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class DataCollection : ObservableCollection<DataModel>
    {
        public DataCollection()
        {
            using (var sqlconn = new SqlConnection(MainWindow.Connection()))
            {
                using (var sqlcomm = new SqlCommand("SELECT * FROM Example", sqlconn))
                {
                    sqlconn.Open();
                    using (var reader = sqlcomm.ExecuteReader())
                        while (reader.Read())
                        {
                            Add(new DataModel() {
                                FIO = reader["FIO"].ToString()
                                , telephone = reader["telephone"].ToString()
                                , age = AgeFromBirthdate(DateTime.Parse(reader["birthdate"].ToString()))
                            });
                        }
                }
 
            }
        }
        private string AgeFromBirthdate(DateTime dt1)
        {
            DateTime dt2 = DateTime.Now;
            if (dt2.Year <= dt1.Year)
                return "";
            int n = dt2.Year - dt1.Year;
            if (dt1.DayOfYear > dt2.DayOfYear) --n;
            string suff = "";
            if ((n / 10) != 1)
                switch (n % 10)
                {
                    case 1:
                        suff = "год";
                        break;
                    case 2:
                    case 3:
                    case 4:
                        suff = "года";
                        break;
                    default:
                        suff = "лет";
                        break;
                }
            else suff = "лет";
            return n + " " + suff;
        }
    }

в основном коде все обработчики событий и подключение к бд
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
public MainWindow()
        {
            InitializeComponent();
            content.Loaded += Content_Loaded;
            dataform.Loaded += Dataform_Loaded;
            Save.Click += saveclick;
            Fill();
        }
 
        private void Content_Loaded(object sender, RoutedEventArgs e)
        {
            datascroll.MaxHeight = content.MaxHeight - 34 - 5 - 22;
        }
 
        private void Fill()
        {
            DataCollection dt = new DataCollection();
            data.ItemsSource = dt;
        }
 
        private void Dataform_Loaded(object sender, RoutedEventArgs e)
        {
            Save.Width = dataform.ActualWidth - 2;
        }
 
        private void saveclick(object sender, RoutedEventArgs e)
        {
            if (!String.IsNullOrWhiteSpace(FIO.Text) || !String.IsNullOrWhiteSpace(telephone.Text) || !String.IsNullOrWhiteSpace(birthdate.Text))
                using (var sqlconn = new SqlConnection(MainWindow.Connection()))
                {
                    using (var sqlcomm = new SqlCommand("INSERT INTO Example (FIO,telephone,birthdate) VALUES ('" + FIO.Text + "','" + telephone.Text + "','" +
                        birthdate.Text + "')", sqlconn))
                    {
                        sqlconn.Open();
                        sqlcomm.ExecuteNonQuery();
                    }
                }
            else
                MessageBox.Show("Заполните все поля!");
            Fill();
        }
 
        public static string Connection()
        {
            string user_id = "";//login to database
            string password = "";//password to database
            string server = "127.0.0.1";//server of database
            string database = "Example";//Name of database
            string timeout = "5";
            return "user id=" + user_id + ";password=" + password + ";server=" + server + ";database=" + database + ";connection timeout=" + timeout;
        }

и не забыть создать бд в sql(я например создал в ms sql)
Кликните здесь для просмотра всего текста
SQL
1
2
3
4
5
6
CREATE TABLE [dbo].[Example](
    [id] [INT] IDENTITY(1,1) NOT NULL,
    [FIO] [VARCHAR](500) NULL,
    [telephone] [VARCHAR](20) NULL,
    [birthdate] [DATE] NULL
) ON [PRIMARY]


Если есть вопросы по коду задавай - отвечу, объясню

результат:
Сохранение информации в базу данных
3
Meowizzy
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 32
27.01.2016, 23:05  [ТС] 3
Выдает ошибку при запуске как исправить?
0
Миниатюры
Сохранение информации в базу данных  
ILKarina
19 / 18 / 14
Регистрация: 06.03.2013
Сообщений: 335
Завершенные тесты: 2
28.01.2016, 02:14 4
Meowizzy, у тебя проблемы с sql-сервером. проверь connection() там должен быть указан именно твой сервер с бд
0
Meowizzy
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 32
28.01.2016, 10:03  [ТС] 5
ILKarina, Блин я что то не найду где смотреть подскажи
0
ILKarina
19 / 18 / 14
Регистрация: 06.03.2013
Сообщений: 335
Завершенные тесты: 2
28.01.2016, 11:14 6
Meowizzy, Ты какой сервер используешь?
И я ж скидывал тебе код:
C#
1
2
3
4
5
6
7
8
9
public static string Connection()
        {
            string user_id = "";//Здесь имя пользователя
            string password = "";//Пароль пользователя
            string server = "127.0.0.1";//IP-адрес или имя сервера
            string database = "Example";//Имя базы данных
            string timeout = "5";
            return "user id=" + user_id + ";password=" + password + ";server=" + server + ";database=" + database + ";connection timeout=" + timeout;
        }
Но это справедливо для MS SQL server, что используешь ты, я не знаю
0
Alex_trader
3 / 3 / 5
Регистрация: 11.11.2015
Сообщений: 413
28.01.2016, 14:54 7
Цитата Сообщение от ILKarina Посмотреть сообщение
Если есть вопросы по коду задавай - отвечу, объясню
А если с массива (List) нужно заполнить один столбец, а остальные не трогать? Можно пример кода?
0
Meowizzy
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 32
28.01.2016, 23:38  [ТС] 8
ILKarina, не могу разобраться можешь скинуть приложение это с бд я попробую наглядно понять буду очень благодарен
0
Миниатюры
Сохранение информации в базу данных  
ILKarina
19 / 18 / 14
Регистрация: 06.03.2013
Сообщений: 335
Завершенные тесты: 2
29.01.2016, 02:22 9
Alex_trader, Это как
Цитата Сообщение от Alex_trader Посмотреть сообщение
остальные не трогать
? Почетче объясните пожалуйста...
можно например просто присвоить datagrid'у list, в котором ты не все свойства заполнил:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class model{
public string column1{get;set;}
public string column2{get;set;}
public string column3{get;set;}
public string column4{get;set;}
}
public partial class MainWindow : Window{
public MainWindow(){
InitializeComponent();
List<Model> list = new List<Model>();
//тут просто не заполняешь столбцы которые тебе не нужны и все
list.Add(new Model(){
column1 = "Нужный столбец"
//, column2 = "Ненужный"
, column3 = "Нужный столбец"
//, column4 = "Ненужный"
}); 
datagrid.ItemsSource = list;
}
}
Meowizzy,
1) У вас MS SQL server стоит? Потому-что connection() подключается именно к серверу. Если он не находит, то соответственно у вас и ошибка.
2) Проверьте название Базы данных и string database. Они должны совпадать. Если у вас нету этой бд или имена не совпадают, то он не сможет подключиться.
2) Проверьте название таблицы в бд. Они тоже должны совпадать.

На картинке ты вроде подключаешься к локальной бд значит у тебя connection() немного отличается:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public static string Connection()
{
/*
string user_id = "";//Здесь имя пользователя
string password = "";//Пароль пользователя
string server = "127.0.0.1";//IP-адрес или имя сервера
string database = "Example";//Имя базы данных
string timeout = "5";
return "user id=" + user_id + ";password=" + password + ";server=" + server + ";database=" + database + ";connection timeout=" + timeout;
*/
string PathToDb = @"";//путь до бд
return @"Data Source=(LocalDB)\v11.0;Integrated Security=True;AttachDbFilename="+PathToDb;
}
ну как-то так...
0
Meowizzy
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 32
29.01.2016, 22:36  [ТС] 10
ILKarina, Все спасибо помогло отличный ты человек))
А вот еще одна ошибка когда заполняю данные в таблицу По русски у меня за место букв ????????? а по английски все хорошо в чем дело? и как исправить?
0
ILKarina
19 / 18 / 14
Регистрация: 06.03.2013
Сообщений: 335
Завершенные тесты: 2
30.01.2016, 02:09 11
Meowizzy, вроде похоже на неправильную кодировку базы данных.
0
Meowizzy
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 32
30.01.2016, 11:21  [ТС] 12
ILKarina, Ну как исправить проблему?)
0
ILKarina
19 / 18 / 14
Регистрация: 06.03.2013
Сообщений: 335
Завершенные тесты: 2
31.01.2016, 09:53 13
Meowizzy, тык
0
Meowizzy
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 32
01.02.2016, 22:22  [ТС] 14
ILKarina, Вот никак не могу я блин сначала пробую потом обращаюсь за помощью никак не могу сделать
0
ILKarina
19 / 18 / 14
Регистрация: 06.03.2013
Сообщений: 335
Завершенные тесты: 2
02.02.2016, 02:35 15

Не по теме:

Цитата Сообщение от Meowizzy Посмотреть сообщение
Вот никак не могу я блин сначала пробую потом обращаюсь за помощью никак не могу сделать
Сколько раз я это ни прочитал, так и не понял


А по теме: вы вообще пользоваться гуглом умеете? По ссылке которую я вам дал, там первые поисковые результаты дают вам ответ.
0
Meowizzy
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 32
02.02.2016, 11:30  [ТС] 16
ILKarina, Во я первым делом через VALUES(N). То ругается на N, то еще что то может быть я не туда вставляю подскажите куда вставить пожалуйста

Добавлено через 2 минуты
ILKarina, А еще пробовал в строку подключение добавить Charset = utf8
Код
 return @"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename =" + PathToDb;
и выдает ошибку на эту строку
Код
 using (var sqlconn = new SqlConnection(Window2.Connection()))
0
ILKarina
19 / 18 / 14
Регистрация: 06.03.2013
Сообщений: 335
Завершенные тесты: 2
03.02.2016, 01:59 17
Meowizzy, Почему же тогда у меня все прекрасно работает? Вот полностью рабочий код моего основного класса:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            content.Loaded += Content_Loaded;
            dataform.Loaded += Dataform_Loaded;
            Save.Click += saveclick;
            Fill();
        }
 
        private void Content_Loaded(object sender, RoutedEventArgs e)
        {
            datascroll.MaxHeight = content.MaxHeight - 34 - 5 - 22;
        }
 
        private void Fill()
        {
            DataCollection dt = new DataCollection();
            data.ItemsSource = dt;
        }
 
        private void Dataform_Loaded(object sender, RoutedEventArgs e)
        {
            Save.Width = dataform.ActualWidth - 2;
        }
 
        private void saveclick(object sender, RoutedEventArgs e)
        {
            if (!String.IsNullOrWhiteSpace(FIO.Text) || !String.IsNullOrWhiteSpace(telephone.Text) || !String.IsNullOrWhiteSpace(birthdate.Text))
                using (var sqlconn = new SqlConnection(MainWindow.Connection()))
                {
                    using (var sqlcomm = new SqlCommand("INSERT INTO Example (FIO,telephone,birthdate) VALUES (N'" + FIO.Text + "',N'" + telephone.Text + "',N'" +
                        birthdate.Text + "')", sqlconn))
                    {
                        sqlconn.Open();
                        sqlcomm.ExecuteNonQuery();
                        sqlconn.Close();
                    }
                }
            else
                MessageBox.Show("Заполните все поля!");
            Fill();
        }
 
        public static string Connection()
        {
            /*
            string user_id = "";//login to database;
            string password = "";//password to database;
            string server = "127.0.0.1";//server of database;
            string database = "Example";//Name of database;
            string timeout = "5";
            return "user id=" + user_id + ";password=" + password + ";server=" + server + ";database=" + database + ";connection timeout=" + timeout;
            */
            string PathToDb = @"|DataDirectory|\Database1.mdf";//путь до бд
            return @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" + PathToDb + ";Integrated Security=True"; 
        }
    }
0
insite2012
Модератор
Эксперт .NET
4865 / 3818 / 1096
Регистрация: 12.10.2013
Сообщений: 11,095
Записей в блоге: 2
03.02.2016, 08:44 18
Цитата Сообщение от Meowizzy Посмотреть сообщение
если есть у кого готовая приложение дайте пожалуйста
Вот готовая рабочая программа.
0
Вложения
Тип файла: rar Password Saver.rar (620.7 Кб, 15 просмотров)
Meowizzy
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 32
04.02.2016, 22:32  [ТС] 19
ILKarina, Это а еще вот у меня ошибка блин
Смотри я добавляю combobox
чтобы данные из комбо бокса тож добавлялись
и не могу добавить данные в комбо бокс ошибка

foreach (var obrazovanie in ts_baseentities.Obrazovanie)
comboBox.Items.Add(obrazovanie);
связанная с коннектом подскажи как лучше сделать
0
ILKarina
19 / 18 / 14
Регистрация: 06.03.2013
Сообщений: 335
Завершенные тесты: 2
05.02.2016, 02:39 20
Meowizzy,
Цитата Сообщение от ILKarina Посмотреть сообщение
Если у Вас есть наработки по коду, то пожалуйста выкладывайте сюда.
Из того что вы привели ничего не понятно. И что-то у Вас не вяжется
Цитата Сообщение от Meowizzy Посмотреть сообщение
Смотри я добавляю combobox
чтобы данные из комбо бокса тож добавлялись
вот это как понять? код программы и скрин ошибки пожалйста
0
05.02.2016, 02:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2016, 02:39

Сохранение данных в базу .mdf
Доброго времени суток всем) Проблема стара как мир, но все возможные варианты...

Сохранение изменений в базу данных
Добрый день помогите пожалуйста разобраться как сохранить изменения, которые ты...

Сохранение данных из DataGridView в базу данных
AVE. У меня не получается сохранить введенные данные в бд. Оно их заносит в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru