webForumDet fria alternativet

omvanlda textbox/string till datetime

9 svar · 715 visningar · startad av annasmurf

annasmurfMedlem sedan mars 2006237 inlägg
#1

har ett problem har en kod med textbox och som sedan ska ta fram info från databassen genom att jag skriver in två datum i tvåtextboxar, mitt förta problem äsger då här:
Conversion failed when converting datetime from character string.
klassen ser ut så här

public KundvardmailSchema GetEmail(DateTime fromDate, DateTime toDate)
        {
            KundvardmailSchema ds2Return = new KundvardmailSchema();
            kundvardmailTableAdapter tsta = new kundvardmailTableAdapter();
            tsta.Fill(ds2Return.kundvardmail, fromDate, toDate);
            return ds2Return;

        }

och den andra koden ser ut så här:

protected void ButtonGetEmail_Click(object sender, EventArgs e)
    {
        kundvardmail kund = new kundvardmail();
        
        KundvardmailSchema Kundvard = kund.GetEmail(DateTime.Parse(Textfrdatum.Text), DateTime.Parse(Texttodatum.Text));
}

vad ska jag göra?

GladhMedlem sedan maj 20012 812 inlägg
#2

Jag misstänker att du helt enkelt inte skriver in ett korrekt datumformat i din textsträng. För att lösa det så kör en validator på ditt textfält så texten kommer i rätt format.

- M

annasmurfMedlem sedan mars 2006237 inlägg
#3

vad menar du vad ska jag skriva
textinmatningen ser ut så här:

<form id="form1" runat="server">
    <div>
     <table>
        <tr>
        <td>
        <asp:Label ID="Label2" runat="server" Text="Datum till event som är från 7 dagar från dagensdatum"></asp:Label>
        </td>
        </tr>
        <tr>
        <td>
        <asp:TextBox ID="Texttodatum" runat="server"></asp:TextBox>
        </td>
        <td>
        <asp:TextBox ID="Textfrdatum" runat="server" ></asp:TextBox>
         </td>
             
        </tr>
        <tr>
        <td>
        <asp:Button ID="ButtonGetEmail" runat="server" Text="Hämta kunder" OnClick="ButtonGetEmail_Click" />
         </td>
            </tr>
         
        </table>

och så här
protected void Page_Load(object sender, EventArgs e)
    {
   
    DateTime date = DateTime.Now;
    Textfrdatum.Text = date.ToShortDateString();

    Texttodatum.Text = date.AddDays(-14).ToShortDateString();
     
    }
GladhMedlem sedan maj 20012 812 inlägg
#4

Detta är en ASP.NET fråga och bör ligga i det forumet istället!

Men för det första, får du felet även om du inte ändrar datumet i fälten?
På vilken rad får du felet? Får du det där du gör DateTime.Parse() eller får du det när du skapar ditt DataSet?

Istället för DateTime.Parse() så skall du använda dig av DateTime.TryPars() och sedan själv hantera om datumet inte gick att parsa.

Med Validators så menar jag att det finns färdiga RegExp-validators som du kan använda för att garantera att datumet som skrivs in i textfältet har rätt format. För att vara helt säker på att det blir ett korrekt datum så måste du skapa en egen (heller hitta på nätet) validator som tar höjd för skottår och om månaden kan ha 31 dagar osv osv... ut på google och sök efter Validators och ASP.NET

- M

annasmurfMedlem sedan mars 2006237 inlägg
#5

jag ändrar inget datum

jag får fel på denna rad
tsta.Fill(ds2Return.kundvardmail, fromDate, toDate);

GladhMedlem sedan maj 20012 812 inlägg
#6

Då gissar jag på att kolumnerna i din databas där du har fromDate och ToDate inte är av typen DateTime utan av typen string/char/varchar. Och du därmed får problem.

- M

annasmurfMedlem sedan mars 2006237 inlägg
#7

nä de är DateTime

GladhMedlem sedan maj 20012 812 inlägg
#8

Ditt problem är att man inte kan konventera DateTime från en sträng. Så någonstans i din databas eller i ditt dataset så har du en felaktig datatyp eller ett felaktigt datum som ställer till det för dig.

- M

annasmurfMedlem sedan mars 2006237 inlägg
#9

ja, det stämmer jag har löst det nu!

jag hade fel typ i SP

annasmurfMedlem sedan mars 2006237 inlägg
#10

hade fel i ett vilkor i databasen hade fnuttar på datum

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)