Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# и базы данных, ADO.NET

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Meowizzy
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 32
#1

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

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

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

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

Сохранение данных, добавленных в базу данных access - C#
Помогите сделать сохранение добавленных данных в бд, при перезапуске программы Вот код бд: private void metroButton3_Click(object...

Сохранение данных в базу данных SQL Server - C#
Есть база данных LocalDB с одной таблицей Notice. Так же есть две формы: одна с textBox и comboBox'ами для добавления данных, другая с...

.NET 4.x Сохранение в базу данных - C#
Здравствуйте. Подскажите пожалуйста как сделать следующее: Исходные данные: - есть база данных из 10 столбцов (условно)...

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

Сохранение данных в базу .mdf - C#
Доброго времени суток всем) Проблема стара как мир, но все возможные варианты решения, найденные мной на этом форуме и в гугле вообще не...

36
ILKarina
17 / 17 / 4
Регистрация: 06.03.2013
Сообщений: 331
Завершенные тесты: 2
27.01.2016, 04:34 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
За Вас,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
17 / 17 / 4
Регистрация: 06.03.2013
Сообщений: 331
Завершенные тесты: 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
17 / 17 / 4
Регистрация: 06.03.2013
Сообщений: 331
Завершенные тесты: 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 / 1
Регистрация: 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
17 / 17 / 4
Регистрация: 06.03.2013
Сообщений: 331
Завершенные тесты: 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
17 / 17 / 4
Регистрация: 06.03.2013
Сообщений: 331
Завершенные тесты: 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
17 / 17 / 4
Регистрация: 06.03.2013
Сообщений: 331
Завершенные тесты: 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
17 / 17 / 4
Регистрация: 06.03.2013
Сообщений: 331
Завершенные тесты: 2
02.02.2016, 02:35 #15

Не по теме:

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


А по теме: вы вообще пользоваться гуглом умеете? По ссылке которую я вам дал, там первые поисковые результаты дают вам ответ.
0
02.02.2016, 02:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2016, 02:35
Привет! Вот еще темы с ответами:

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

Сохранение данных с DataSet в базу данных - C#
Здраствуйте. У меня есть датагрид который подвязан к таблице в базе. Мне нужно что бы при клике на кнопку данные которые ввели в грид...

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

MS Access Не происходит сохранение изменений в базу данных - C#
Добрый вечер. Я не могу сохранить изменения, которые я сделал в datagridview, в базу данных при выполнении такого кода для сохранения: ...


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

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

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