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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

Странна грешка в C# и Access Database (спешно)

Featured Replies

Дава ми следната грешка: Specified cast is not valid.

а това е кода, грешката е оцветена в червено.

Много ще съм благодарен ако ми обясните, защо става така.

string sql;

sql = "SELECT U.USER_ID, U.USER_NAME, U.RIGHTS AS USER_RIGHTS, IIF(G.RIGHTS, 1, 0) AS GROUP_RIGHTS";

sql = sql + " FROM ((USERS U LEFT JOIN GROUP_USERS GU ON U.USER_ID = GU.USER_ID) LEFT JOIN";

sql = sql + " GROUPS G ON G.GROUP_ID = GU.GROUP_ID) WHERE (U.USER_NAME = @USER_NAME) AND (U.[PASSWORD] = @PASSWORD)";

OleDbCommand aCommand = new OleDbCommand(sql, aConnection);

aConnection.Open();

OleDbParameter parametar = aCommand.CreateParameter();

parametar.ParameterName = "USER_NAME";

parametar.Value = username;

aCommand.Parameters.Add(parametar);

parametar = aCommand.CreateParameter();

parametar.ParameterName = "PASSWORD";

parametar.Value = password;

aCommand.Parameters.Add(parametar);

OleDbDataReader aReader = aCommand.ExecuteReader(CommandBehavior.CloseConnection);

while (aReader.Read())

{

if (userData_1 == null)

{

userData_1 = new UserData((int)aReader["USER_ID"], aReader["USER_NAME"].ToString(), (long)aReader["USER_RIGHTS"]);

}

if (aReader.IsDBNull(aReader.GetOrdinal("GROUP_RIGHTS")))

{

userData_1.ApplyRights((long)aReader["GROUP_RIGHTS"]);

}

}

  • Автор
Необходимо ли е това кастване ToString() ?

Има ли върнати данни от заявката ?

Не знам но, селекта връща точно това което трябва.

Стоиностите име и парола трябва да се сравняват със стойности от 2 текстови полета за да може потребителят да влезне в приложението.

User_Name и Password са тип текст в базата.

Не знам но, селекта връща точно това което трябва.

Стоиностите име и парола трябва да се сравняват със стойности от 2 текстови полета за да може потребителят да влезне в приложението.

User_Name и Password са тип текст в базата.

UserData как е дефиниран ?

  • 5 месеца по-късно...
if (userData_1 == null)

{

userData_1 = new UserData((int)aReader["USER_ID"], aReader["USER_NAME"].ToString(), (long)aReader["USER_RIGHTS"]);

}

като кастваш и не се получава , пробваш и другите варианти - Convert.ToString("....") ; (string)

тъй като си плолзвал вече второто ти препоръчвам (string)aReader["USER_NAME"]

Не знам но, селекта връща точно това което трябва.

Стоиностите име и парола трябва да се сравняват със стойности от 2 текстови полета за да може потребителят да влезне в приложението.

User_Name и Password са тип текст в базата.

Ами както ти е казал Кен, махни тоя метод .ToString() и пробвай, те са си текст в базата и без това. И тримвай стойността на текстовите полета преди сравнението ?

  • 5 месеца по-късно...

Аз ги каствам вместо с

aReader["USER_NAME"].ToString(),

със

(string)aReader["USER_NAME"]

Eто и примерен код:

string conection = "Network Library=dbmssocn; Data Source=localhost,1433; User ID=хххх; Password=хххх; Database=хххххх; Integrated Security=true;";

      string query = "SELECT invoice_num,sum,payed FROM dbo.invoice WHERE id=" + id;

      SqlConnection con = new SqlConnection(conection);

      con.Open();

      Invoice tmp = new Invoice();

      try

      {

        SqlCommand command = new SqlCommand(query, con);

        SqlDataReader reader = command.ExecuteReader();


        using (reader)

        {

          while (reader.Read())

          {

            string inv_num = (string)reader["invoice_num"];

Eстествено не ползвам Ole а ADO .Net .. :)

Редактирано от Progres (преглед на промените)

Добавете отговор

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

Гост
Публикацията ви съдържа термини, които не допускаме! Моля, редактирайте съдържанието си и премахнете подчертаните думи по-долу. Ако замените букви от думата със звездички или друго, за да заобиколите това предупреждение, профилът ви ще бъде блокиран и наказан!
Напишете отговор в тази тема...

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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