Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 15
1

Как записать данные в БД SQL

09.04.2012, 12:29. Просмотров 4674. Ответов 22
Метки нет (Все метки)

Всем привет.Новичок в этом деле..пытаюсь записать в SQL таблицу какие то данные и не хочет ни как !!
Вот сам код....

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
namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
         
        }
 
       private void InsertData()
       {
          
           SqlConnection myconnection = new SqlConnection();
           myconnection.ConnectionString = @"Data Source=Server3\ServerSqlTest;Initial Catalog=MyDB;Persist Security Info=true;User ID=sa;Password=seiseli2009;Max Pool Size = 300;Min Pool Size = 1; ";
           try
           {
 
               SqlCommand sqlcmd = myconnection.CreateCommand();
               sqlcmd.CommandText = "INSERT into dbo.Exam_Colposcopic (Polipi,Atrofie,Others) Values ('@Polipi','@Atrofie','@Others')";
               sqlcmd.Parameters.AddWithValue("@Polipi", "True");
               sqlcmd.Parameters.AddWithValue("@Atrofie", "False");
               sqlcmd.Parameters.AddWithValue("@Others", "Testare");
               myconnection.Open();
               sqlcmd.ExecuteNonQuery();
               myconnection.Close();
           }
           catch (Exception e)
           {
 
 
           }
           
           
       }
 
       protected void Button3_Click(object sender, EventArgs e)
       {
           InsertData();
       }
 
      
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2012, 12:29
Ответы с готовыми решениями:

как записать данные из таблицы SQL в массив?
Всем привет! У меня есть обычный массив и SQL таблица с данными. Мне надо найти повторяющиеся...

Как записать данные из SQL таблицы в массив
У меня вопрос: Я создала клас для сохранения в него SQL таблицы. И потом в него записую данные, но...

Не могу записать данные в sql
GET данных передает. но записат не могу получаю ответ "Данные НЕ были записаны!" <? ...

Данные из Combobox записать в таблицу SQL
Добрый день, я только начинаю учиться в Delphi по этому не судите за вопрос ... Сам вопрос....

22
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
09.04.2012, 13:50 2
Что пишет по поводу ошибки?(Лучше если весь текст ошибки напишите).
1
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 15
09.04.2012, 14:23  [ТС] 3
Цитата Сообщение от y-fox Посмотреть сообщение
Что пишет по поводу ошибки?(Лучше если весь текст ошибки напишите).
Дело в том что ошибки нет,а новая запись в таблице не появляется...

Добавлено через 17 минут
Вообще то мне нужно записать в базу...сейчас расскажу....есть веб-форма с cheekbox-ами. вот мне нужно записать в таблицу эти значения (true,false)....что мне для этого нужно ????? Таблица создана с соответствующими полями создана.....
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
09.04.2012, 14:42 4
В соответствии с типами? Замените '@Polipi','@Atrofie' на @Polipi,@Atrofie (без кавычек).
1
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 15
09.04.2012, 15:05  [ТС] 5
Цитата Сообщение от y-fox Посмотреть сообщение
В соответствии с типами? Замените '@Polipi','@Atrofie' на @Polipi,@Atrofie (без кавычек).
Изменил...но без изменений .....
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
09.04.2012, 16:52 6
1. Таблица с каким полями? Навазние - тип.
2. В отладчике посмотрите какая ошибки приходит в catch, если данные добавились значит они будут в бд, если нет, значит был excaption.
1
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 15
09.04.2012, 19:53  [ТС] 7
Цитата Сообщение от y-fox Посмотреть сообщение
1. Таблица с каким полями? Навазние - тип.
2. В отладчике посмотрите какая ошибки приходит в catch, если данные добавились значит они будут в бд, если нет, значит был excaption.
В таблице полей 29-30 тип соответствует cheekbox-ам название полей соотелветствует что в запросе...NULL для полей разрешен , я этим примером хотел просто попробовать записать что то в таблицу....
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
09.04.2012, 20:06 8
Отлично.
2. В отладчике посмотрите какая ошибки приходит в catch, если данные добавились значит они будут в бд, если нет, значит был excaption.
1
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 15
10.04.2012, 10:04  [ТС] 9
Цитата Сообщение от y-fox Посмотреть сообщение
Отлично.
2. В отладчике посмотрите какая ошибки приходит в catch, если данные добавились значит они будут в бд, если нет, значит был excaption.
А по подробней как это делается ... ОТЛАДКА ....
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
10.04.2012, 10:51 10
На блок try правой мышкой->breakpoint->add breakpoint. Дальше жмете F5, запустится приложение, проделайте действия которые, чтобы вызвать фцию InsertData(судя по всему нужно жмакнуть кнопку на форме), после чего попадете в код, нажимая F10 будете переходить к следующему исполняемому куску кода. Жмите F10 пока не уйдете из InsertData или не попадете в catch, если попадете в catch, то посмотрите, какое сообщение в переменной 'e.Message'.
1
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 15
10.04.2012, 11:14  [ТС] 11
Цитата Сообщение от y-fox Посмотреть сообщение
На блок try правой мышкой->breakpoint->add breakpoint. Дальше жмете F5, запустится приложение, проделайте действия которые, чтобы вызвать фцию InsertData(судя по всему нужно жмакнуть кнопку на форме), после чего попадете в код, нажимая F10 будете переходить к следующему исполняемому куску кода. Жмите F10 пока не уйдете из InsertData или не попадете в catch, если попадете в catch, то посмотрите, какое сообщение в переменной 'e.Message'.
Сделал как вы сказали....при нажатии на F10 строки в коде становятся желтыми по очереди до :
C#
1
 sqlcmd.ExecuteNonQuery();
а
C#
1
 myconnection.Close();
пропускает....потом переходет в

catch (Exception e) , потом переходет в InsertData(); что в Button3....
Вот это я вижу в отладке....Но в Exception не вижу ни какого сообщения....
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
10.04.2012, 11:27 12
когда попадете в catch наведите на 'e', откроются его поля, там найтиде Message наведите на него и увидите сообщение об ошибке.
1
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 15
10.04.2012, 12:21  [ТС] 13
Цитата Сообщение от y-fox Посмотреть сообщение
когда попадете в catch наведите на 'e', откроются его поля, там найтиде Message наведите на него и увидите сообщение об ошибке.
Message = "Cannot insert the value NULL into column 'ColposcopieGUID', table 'MyDB.dbo.Exam_Colposcopic'; column does not allow nulls. INSERT fails.\r\nThe statement has been terminated."

Вот и message , вот вам СПАСИБО....вот так по немного и научемся !!!!
Так получается что ему не нравится поле 'ColposcopieGUID' а я на это поле поставил ( РК , uniqueidentifire ,NOT NULL ) думал что он автоматом поставит GUID....так как мне поступить с этим GUID ????
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
10.04.2012, 12:34 14
Сгенерировать его.
C#
1
Guid myguid = Guid.NewGuid();
Добавлено через 3 минуты
P.S.
Соединение нужно закрывать всегда:
добавьте к своему блоку try
блок finally
C#
1
2
3
4
catch (Exception e)
{
}
finally{myconnection.Close();}
или вообще без catch'а, если он пустует, то он и не нужен вовсе.
1
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 15
10.04.2012, 14:25  [ТС] 15
Цитата Сообщение от y-fox Посмотреть сообщение
Сгенерировать его.
C#
1
Guid myguid = Guid.NewGuid();
Добавлено через 3 минуты
P.S.
Соединение нужно закрывать всегда:
добавьте к своему блоку try
блок finally
C#
1
2
3
4
catch (Exception e)
{
}
finally{myconnection.Close();}
или вообще без catch'а, если он пустует, то он и не нужен вовсе.
Блин...все ровно не хочет...вот что я добавил: Красным выделено ...

SqlCommand sqlcmd = myconnection.CreateCommand();
Guid myguid = new Guid();
sqlcmd.CommandText = "INSERT into dbo.Exam_Colposcopic (ColposcopieGUID,Polipi,Atrofie,Others) Values (@ColposcopieGUID,@Polipi,@Atrofie,@Others)";

sqlcmd.Parameters.AddWithValue("@ColposcopieGUID", myguid);
sqlcmd.Parameters.AddWithValue("@Polipi", "True");
sqlcmd.Parameters.AddWithValue("@Atrofie", "False");
sqlcmd.Parameters.AddWithValue("@Others", "Testare");

myconnection.Open();
sqlcmd.ExecuteNonQuery();

Вот что за Exception выдал : Violation of PRIMARY KEY constraint 'PK_Exam_Colposcopic'. Cannot insert duplicate key in object 'dbo.Exam_Colposcopic'.
The statement has been terminated.
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
10.04.2012, 14:52 16
C#
1
2
Guid myguid = new Guid(); // = 00000000 0000 0000 0000 000000000000
Guid myguid2 = Guid.NewGuid();// = случаные байты
а вам он говорит, что ключ повторяться не может.
1
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 15
10.04.2012, 15:51  [ТС] 17
Цитата Сообщение от y-fox Посмотреть сообщение
C#
1
2
Guid myguid = new Guid(); // = 00000000 0000 0000 0000 000000000000
Guid myguid2 = Guid.NewGuid();// = случаные байты
а вам он говорит, что ключ повторяться не может.
ХА-ХА амиго мы его порвали !!! Есть записи в таблице !!! Огромное тебе СПАСИБО !!!! Вижу ты не совсем новичок ...вот я ДА !!!
Guid myguid = new Guid(); я это убрал с кода !!!
Но я это так ...для теста пытался записывать в таблицу...(sqlcmd.CommandText = "INSERT into dbo.Exam_Colposcopic (ColposcopieGUID,Polipi,Atrofie,Others) Values (@ColposcopieGUID,@Polipi,@Atrofie,@Others)"....а мне нужно что бы где поставил галочку на форме , или какой текст написал бы в textbox ...то бы оно сохранялось в таблице...Знайте как это реализовать ????
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
10.04.2012, 17:47 18
Ну, на форме сделать чекбоксы и в обработчике:

C#
1
2
3
4
5
6
7
sqlcmd.Parameters.AddWithValue("@Polipi", Polipi.Checked);
sqlcmd.Parameters.AddWithValue("@Atrofie", Atrofie.Checked);
sqlcmd.Parameters.AddWithValue("@Others", Others.Text);
/*
Polipi и Atrofie -CheckBox'ы на форме.
Others - TextBox и т.д.
*/
1
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 15
10.04.2012, 18:20  [ТС] 19
Так на форме все уже есть...а на счет " Спасибо " я не знал ,даже не обращал внимание !!!
А у вас Skype есть ??? Может обменяемся ?? По нему проще будет общаться ...ну конечно если вас это не беспокоит конечно...

Так так...а тогда мне что нужно будет все название полей добавить тут...
C#
1
sqlcmd.CommandText = "INSERT into dbo.Exam_Colposcopic (ColposcopieGUID,Polipi,Atrofie,Others) Values (@ColposcopieGUID,@Polipi,@Atrofie,@Others)";
???????
И потом еще :
C#
1
2
3
sqlcmd.Parameters.AddWithValue("@Polipi", Polipi.Checked);
sqlcmd.Parameters.AddWithValue("@Atrofie", Atrofie.Checked);
sqlcmd.Parameters.AddWithValue("@Others", Others.Text);
.........

..... тоже для всех полей ?
ну такие вопросы возникают когда не знаеш...
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
10.04.2012, 18:43 20
Да, еще можно использовать EF что-то подобное, но поля все равно придется откуда-то куда-то читать.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2012, 18:43

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Не выходит записать данные через SQL запрос
в общем на синтаксис запроса ругаеться.. база данных на Аксесе написана.. а сам текст как я понял...

Программно из таблицы Word записать данные в базу данных SQL
Здравствуйте, можно это сделать? таблица из двух столбцов, и для общего развития база данных SQL,...

Записать данные из пост-запроса в БД sql после нажатия кнопки
Всем привет. Вопрос связан с передачей данных с одной формы методом пост в переменные и последующая...

Как в VBA записать данные в реестр и читать данные из реестра?
Как в VBA записать данные в реестр и читать данные из реестра office xp


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

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

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