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 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
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 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
jag ändrar inget datum
jag får fel på denna rad
tsta.Fill(ds2Return.kundvardmail, fromDate, toDate);
GladhMedlem sedan maj 20012 812 inlägg 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
GladhMedlem sedan maj 20012 812 inlägg 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
ja, det stämmer jag har löst det nu!
jag hade fel typ i SP
hade fel i ett vilkor i databasen hade fnuttar på datum