Официальный сайт студ.городка НГТУ
Программирование и БД » Базы данных MySql под .NET 

#1  16.03.07 23:46

Базы данных MySql под .NET

Чтение из БД сделал, осталось добавление, обновление и удаление данных в чем собственно состоит проблема!

Вот код, который реализует добавление данных в БД, но содержит ошибку:

Код: csharp:

 public static void WriteString(string whatToWrite, string whatToWrite2, string whatToWrite3)
        {
            string connectionString = "datasource=localhost;username=root;password=mc;database=Customer";
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                string commandText = "insert into duel (id,nm,tel) values (@a,@b,@c)";
                using (MySqlCommand command = new MySqlCommand(commandText, connection))
                {
                    connection.Open();
                    command.CommandType = CommandType.Text;
                    command.Parameters.Add("@a", whatToWrite);
                    command.Parameters.Add("@b", whatToWrite2);
                    command.Parameters.Add("@c", whatToWrite3);
                    command.ExecuteNonQuery();
                }
            }
        }
 
 private void button1_Click(object sender, EventArgs e)
        {
 
            WriteString(textBox1.Text, textBox2.Text, textBox2.Text);
 
        }

Таблица
di(int)   nm(char)   tel(int)
1          dfgdfg          8923
2          dfgfg        8922

после выполнения кода выдает:
Таблица
di   nm      tel
1   ifd       8923
2   dfgfg   8922
3
4
5
.
.
.
и так далее увеличивает только ключ, если просто попробывать добавить только 2 или 3 колонку, все равно добавляет в ключ...
Может ктонить видит ошибку или может  предложить другой вариант?

Offline

#2  17.03.07 00:53

Re: Базы данных MySql под .NET

Может с кодировками проблема, в базе 1251, а пытаешься в utf8 писать или что-то типа того?

Offline

#3  17.03.07 02:53

Re: Базы данных MySql под .NET

для MySQL параметры должны начинаться не c "@", а с "?"
для оракла помоему ":"

этож всем известные грабли...

Исправлено Кузя (17.03.07 03:08)

Offline

#4  17.03.07 13:16

Re: Базы данных MySql под .NET

Кузя написал(а):

для MySQL параметры должны начинаться не c "@", а с "?"

еще и  command.Parameters.Add("a", whatToWrite); ljk;yj ,snm

Offline

#5  17.03.07 17:20

Re: Базы данных MySql под .NET

все заработало, тока с кодировкой проблема, вместо руского шрифта в БД только "?????" , в MySQL у тип CHAR на ASCII и на UNICOD менял, не помогло.

Offline

#6  17.03.07 22:44

Re: Базы данных MySql под .NET

set names

Offline

#7  08.04.07 20:44

Re: Базы данных MySql под .NET

npo. написал(а):

set names

не канает

Offline

#8  08.04.07 20:45

Re: Базы данных MySql под .NET

После выполения кода listbox1 остается пустым, хотя заполняется в самой функции. DataReader заполняется(returnString = ClientNAme возвращает последнюю сторку из DataReader). Как возвратить тогда все данные из DataReader? Или как то можно подругому ?


Код: csharp:

 public static string addcombobox()
        {
            string returnString="";
 
            string connectionString = "datasource=localhost;username=root;password=mc;database=Customer";
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
 
                string commandText = "Select ClientName from clients";
 
 
                    MySqlCommand command = new MySqlCommand(commandText, connection);
                    connection.Open();
                    using (MySqlDataReader reader = command.ExecuteReader()) 
                    {
                        while (reader.Read())
                        {
                            string ClientNAme = reader.GetString(0);
                            returnString = ClientNAme;
                            ListBox listBox1 = new ListBox();
                            listBox1.Items.Add(ClientNAme);
 
 
                        }
                        reader.Close();
                    }
 
                } 
            return returnString;
        }
 
private void button4_Click(object sender, EventArgs e)
        {
 
           textBox2.Text= addcombobox();
           listBox1.Refresh();
 
        }
 

Исправлено Gee.eM.Cee (08.04.07 20:47)

Offline

#9  09.04.07 01:16

rzk
Профиль

Re: Базы данных MySql под .NET

Код::

while (reader.Read())
                        {
                            string ClientNAme = reader.GetString(0);
                            returnString = ClientNAme;
                            ListBox listBox1 = new ListBox();
                            listBox1.Items.Add(ClientNAme);
                        }

Я так понимаю, что при каждом чтении ридера создается новый листбокс и в него добавляется один элемент.
Что бы листбокс заполнился всеми элементами
надо сделать так

Код::

ListBox listBox1 = new ListBox();
while (reader.Read())
                        {
                            string ClientNAme = reader.GetString(0);
                            returnString = ClientNAme;
                            listBox1.Items.Add(ClientNAme);
                        }

или так

Код::

connection.Open();
using (SqlDataAdapter da = new SqlDataAdapter(returnMessages))
                        {
                            DataSet ds = new DataSet();
                            da.Fill(ds);

                            ListBox1.DataSource = ds;
                            ListBox1.DataTextField = "ClientName";
                            ListBox1.DataBind();
                            sqlConnection.Close();
                        }

Исправлено rzk (09.04.07 01:18)

Offline

#10  09.04.07 18:23

Re: Базы данных MySql под .NET

все заработало после того как я передал компонент  listBox1 в addcombobox...

Исправлено Gee.eM.Cee (09.04.07 21:13)

Offline

Программирование и БД » Базы данных MySql под .NET 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.088 сек.
Выполнено 14 запросов.