Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

C# програма с MYSQL база данни, проблем с връзката

Featured Replies

Здравейте! Става въпрос за база данни, на която се запазват данните на всички потребители. Проблемът е следният. Имам главна функция с която се добавят нови потребители или се зареждат същестуваващи, но не иска да ми добавя или зарежда потребител, и програмата се затваря. Моля ударете едно рамо, колеги! това е кодът в главната функция: (По-скоро проблемът ми се корени не в главната функция, а в другите според мен) Това което го правя е за компютърна игра с автомобили за да си направим играта по-интересна. Благодаря ви! :)

П.П Грешката която получавам е : The Connection is open

 bool InList = false;
            // Проверка дали потребителят е нов
            foreach (clsConnection Conn in Connections)
            {
                if (Conn.UniqueID == NCN.UCID)
                {
                    InList = true;
                    continue;
                }
            }
            // Ако не е се изпълнява това
            if (!InList)
            {
                try
                {
                    //Присвояване на стойности на нова връзка.
                    clsConnection NewConn = new clsConnection();
                    NewConn.Username = NCN.UName;
                    NewConn.IsAdmin = NCN.Admin;
                    NewConn.Cars = SqlInfo.GetUserCars(NCN.UName);
                    if (!SqlInfo.GetUser(ref NewConn, NCN.UName))
                    SqlInfo.NewUser(ref NewConn, NCN.UName);
                    Connections.Add(NewConn);
                }
                catch (Exception EX) // Ако има проблем с прочитането се изпълнява това
                {

                    MsgAll("^1Проблем с MySQL, Не може да бъде зареден потребителят: " + NCN.UName);
                    clsConnection NewConn = new clsConnection(); //Така че не разбива всички останали.
                    NewConn.UniqueID = NCN.UCID;
                    NewConn.PlayerName = NCN.PName + "(ERROR)";
                    NewConn.Username = ""; //Статистика не се спасява.
                    insim.Send("" + EX.Message.ToString());
                    Connections.Add(NewConn);
                    KickID(NCN.UName); //Изхвърля потребителя ако той не бъде зареден!
                }
            }

Това което е за MySQL връзката:

 public void AddUser(clsConnection c)
        {
            if (c.Username == "")
                return;
            List<string> users = new List<string>();
            List<string> values = new List<string>();
            int i = 0;
            foreach (FieldInfo mi in typeof(clsConnection).GetFields())
            {
                foreach (StatsAttribute a in mi.GetCustomAttributes(typeof(StatsAttribute), false))
                {
                    users.Add(a.Name);
                    values.Add("'" + mi.GetValue(c) + "'");
                    i++;
                }
            }
            string query = "INSERT INTO user(" + string.Join(",", users.ToArray()) + ") VALUES (" + string.Join(",", values.ToArray()) + ");";
            Query(query);
        }
        public bool GetUser(ref clsConnection c)
        {
            MySqlCommand query = new MySqlCommand();
            query.Connection = SQL;
            query.CommandText = "SELECT ";
            foreach (FieldInfo mi in typeof(clsConnection).GetFields())
            {
                foreach (StatsAttribute a in mi.GetCustomAttributes(typeof(StatsAttribute), false))
                {
                    query.CommandText += a.Name + ", ";
                }
            }
            query.CommandText = query.CommandText.Substring(0, query.CommandText.Length - 2);
            query.CommandText += " FROM user WHERE User_Name='" + Escape(c.Username) + "'";
            query.Prepare();
            MySqlDataReader dr = query.ExecuteReader();
            if (dr.HasRows)
            {
                foreach (FieldInfo mi in typeof(clsConnection).GetFields())
                {
                    foreach (StatsAttribute a in mi.GetCustomAttributes(typeof(StatsAttribute), false))
                    {

                        dr.Read();
                        if (mi.FieldType.Name == "String")
                        {
                            mi.SetValue(c, (object)dr.GetString(a.Name));
                        }
                        else if (mi.FieldType.Name == "Double")
                        {
                            mi.SetValue(c, (object)dr.GetDouble(a.Name));
                        }
                        else if (mi.FieldType.Name == "Int32")
                        {
                            mi.SetValue(c, (object)dr.GetInt32(a.Name));
                        }
                        else if (mi.FieldType.Name == "UInt32")
                        {
                            mi.SetValue(c, (object)dr.GetUInt32(a.Name));
                        }
                        else if (mi.FieldType.Name == "Byte")
                        {
                            mi.SetValue(c, (object)dr.GetByte(a.Name));
                        }
                        else if (mi.FieldType.Name == "Boolean")
                        {
                            mi.SetValue(c, (object)dr.GetBoolean(a.Name));
                        }
                        else if (mi.FieldType.Name == "Date")
                        {
                            mi.SetValue(c, (object)dr.GetDateTime(a.Name));
                        }
                    }
                }
            }
            else
            {
                dr.Close();
                return false;
            }
            dr.Close();
            return true;
        }

 

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.