Wyświetlanie liter zamiast cyfr

0

Witam,

Mam problem z następującym kodem:

protected void Button_Click(object sender, EventArgs e)
{
bool ok1, ok2, ok3, ok4;
int l1, l3, l4;
string l2;
ok1 = int.TryParse(TextBox1.Text, out l1);
ok2 = string(TextBox2.Text, out l2);
ok3 = int.TryParse(TextBox3.Text, out l3);
ok4 = int.TryParse(TextBox4.Text, out l4);
if (ok1 && ok2 && ok3 && ok4) Label5.Text = "Dane poprawne";
if (!ok1 && ok2 && ok3 && ok4) Label5.Text = "Niepoprawna wartość w pierwszym polu";
if (ok1 && !ok2 && ok3 && ok4) Label5.Text = "Niepoprawna wartość w drugim polu";
if (ok1 && ok2 && !ok3 && ok4) Label5.Text = "Niepoprawna wartość w trzecim polu";
if (ok1 && ok2 && ok3 && !ok4) Label5.Text = "Niepoprawna wartość w czwartym polu";
}
}

Posiadam cztery TextBox'y. W zależności w jakie pole wpiszesz, jakie dane wyświetla się dany rodzaj błedu. Dla TextBox'ów 1 , 3 i 4 przypisany jest int Natomiast, chciałbym, aby w TextBox2 móc wpisywać litery, a nie cyfry. Typ string nie działa. Prosiłbym o pomoc

0
ok2 = string(TextBox2.Text, out l2);

Co to ma być? :|

1

if (!ok1 && ok2 && ok3 && ok4) Label5.Text = "Niepoprawna wartość w pierwszym polu";
if (ok1 && !ok2 && ok3 && ok4) Label5.Text = "Niepoprawna wartość
w drugim polu";
if (ok1 && ok2 && !ok3 && ok4) Label5.Text = "Niepoprawna wartość w trzecim polu";
if (ok1 && ok2 && ok3 && !ok4) Label5.Text = "Niepoprawna wartość w czwartym polu";

:D A co jeśli zarówno w pierwszym polu jak i w drugim będzie źle? :>

  1. Używanie TextBoxów dla liczb to jak używanie farb olejnych do rysunków technicznych.

  2. Z czego to przepisujesz? Z Pythona? ( string(...) )

  3. Konwersje string do string to nie w .NET, przykro mi. Ewentualnie wywołaj metodę ToString(), jeśli koniecznie chcesz robić string ze stringa.

0
somekind napisał(a)
ok2 = string(TextBox2.Text, out l2);

Co to ma być? :|

Zastanów się teraz jak bardzo Twój post jest mądrzejszy od linijki, którą zacytowałeś.


@msm

Dalsze przypadki wyskakiwania błędów zamierzałem rozwinąć po wcześniejszym uporaniu się z problemem związanym ze string

Przez te TextBoxy dodaję również wpisy do bazy danych. Oto cały kod:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
    string wpisz, wybierz;
    wpisz = "INSERT INTO sklep ";
    wpisz += "([ID], [Towar], [Ilosc], [Cena])";
    wpisz += "VALUES ('" + TextBox1.Text + "', '" + TextBox2.Text + "', '" + TextBox3.Text + "', '" + TextBox4.Text + "')";
    wybierz = "SELECT id FROM sklep WHERE id = " + int.Parse(TextBox1.Text);
    SqlDataSource1.InsertCommand = wpisz;
    SqlDataSource1.SelectCommand = wybierz;
    DataView dv = (DataView)SqlDataSource1.Select(new DataSourceSelectArguments());
    try
    {
        if (dv.Count == 0)
        {
            SqlDataSource1.Insert();
            Label5.Text = "wpis dokonany";
            TextBox1.Text = "";
            TextBox2.Text = "";
            TextBox3.Text = "";
            TextBox4.Text = "";
        }
        else
        {
            Label5.Text = "Ten numer id jest już zajęty!";
        }
    }
    catch (Exception ex)
    {
        Label5.Text = "<FONT COLOR=red>" + ex.Message + "</FONT>";
    }

    {

    }
}
protected void Button2_Click(object sender, EventArgs e)
{
    bool ok1, ok2, ok3, ok4;
    int l1, l3, l4;
    string l2;

    ok1 = int.TryParse(TextBox1.Text, out l1);
    ok2 = 
    ok3 = int.TryParse(TextBox3.Text, out l3);
    ok4 = int.TryParse(TextBox4.Text, out l4);
    if (ok1 && ok2 && ok3 && ok4) Label5.Text = "Wpis dokonany";
    if (!ok1 && ok2 && ok3 && ok4) Label5.Text = "Niepoprawna wartość w pierwszym polu";
    if (ok1 && !ok2 && ok3 && ok4) Label5.Text = "Niepoprawna wartość w drugim polu";
    if (ok1 && ok2 && !ok3 && ok4) Label5.Text = "Niepoprawna wartość w trzecim polu";
    if (ok1 && ok2 && ok3 && !ok4) Label5.Text = "Niepoprawna wartość w czwartym polu";
}

}

Mógłbyś rozwinąć swoją myśl z ToString, bo nie działa mi.

0
Sawer napisał(a)

Zastanów się teraz jak bardzo Twój post jest mądrzejszy od linijki, którą zacytowałeś.

TextBox2.Text już to string. Ty chcesz go zamienić w string (po co, skoro to żadna zamiana?) przy okazji sprawdzając czy jest stringiem. (Po co, skoro nim jest?)
Więc może Ty najpierw zastanowisz się, co chcesz zrobić, co?

1

Po prostu wywal to string( ) i zostaw samo TextBox2.Text.

Proponuję również używać NumericUpDown zamiast tych trzech textboxów, zniknie od razu problem z parsowaniem wartości ze stringa.

I te checki - zamiast tak kombinować lepiej napisz tak (im prostszy kod tym lepszy - pozbawisz się w ten sposób problemu o którym pisałem)

  if (ok1 && ok2 && ok3 && ok4) Label5.Text = "Dane poprawne";
  if (!ok1) Label5.Text = "Niepoprawna wartość w pierwszym polu";
  if (!ok2) Label5.Text = "Niepoprawna wartość w drugim polu";
  if (!ok3) Label5.Text = "Niepoprawna wartość w trzecim polu";
  if (!ok4) Label5.Text = "Niepoprawna wartość w czwartym polu";

Ja bym jeszcze pomyślał nad zamieszaniem w to pól bitowych, ale to nie jest konieczne ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1