|
what format is the original date in?
and what format is the database storing dates?
it should be fairly simple to convert to required date in c#
not good to use stored procedure if original date and stored date formats are different cuz it cant handle the days and month being switched round i.e. dd/MM/yyyy and MM/dd/yyyy
|
|
|
|
|
i need to input values through gridview (cell),into db(sqlserver, datatype is datetime) i didnot specify any format, my code takes the text values and converts to datetime(stored procedure) and stores.
i tried:
Convert.ToDatetime
DateTime.Parse
using IFormatterProvider--Globilization...
|
|
|
|
|
where does the nvarchar come into it then?
are you passing the datetime value into the database via an sql statement?
if the error is that the database is receiving an nvarchar when it wants a datetime, you may
have a issue with your sql statement.
Datetime needs to be inclosed with the hash symbols (I Think)
i.e. #01/01/2000#
|
|
|
|
|
hi,
i tried with #date#, its not working. my stored procedure(present in my main question)i didnot use any nvarchar. i declared variables as datetime.
i used
IFormatProvider theCultureInfo = new System.Globalization.CultureInfo("en-US", true);
DateTime theDateTime = DateTime.ParseExact(filldate, "mm/dd/yyyy HH:mm:ss", theCultureInfo);
i entered the value in same format in cell.
i got the error:
String was not recognized as a valid DateTime.
|
|
|
|
|
Don't convert in the database. You should convert in C# first, because .NET handles times in a completely different way than SQL Server. SQL Server requires times input as strings to follow a specific format. If you convert in C# first, ADO.NET will take care of the rest:
string freedateraw = Gridview2.Rows[e.RowIndex].Cells[3].Text;
DateTime? freedate = (freedateraw == null ? (DateTime?)null : Convert.ToDateTime(freedateraw));
cmd.Parameters.AddWithValue("@freedate", freedate);
|
|
|
|
|
What if freedateraw is an empty string? freedateraw == null won't work and Convert.ToDateTime(freedateraw) throw an exception. If freedateraw is not null or empty the convert may still throw an exception if it isn't in a valid format.
There is no point to this cast;(DateTime?)null
only two letters away from being an asset
|
|
|
|
|
Actually, there absolutely is a point to the cast. Test it for yourself:
string raw = null;
DateTime? dt = (String.IsNullOrEmpty(raw) ? null : Convert.ToDateTime(raw));
You will get the following compilation error:
Type of conditional expression cannot be determined because there is no implicit conversion between '<null>' and 'System.DateTime'
Yes, you are correct, checking for null is not sufficient, checking String.IsNullOrEmpty() is correct. That wasn't the real point of my response, though. But check that ternary statement...there absolutely is a point to that cast, its reqired to compile.
|
|
|
|
|
Your correct, I forgot the IDE wasn't smart enough to figure out its a nullable type and can be null
only two letters away from being an asset
|
|
|
|
|
You would think the C# compiler would be intelligent enough to handle that. Maybe the co/contravariance stuff in C# 4.0 will simplify such scenarios...
|
|
|
|
|
i tried i got error,
string not recognised as valid datetime.
i used many formatings "mm/dd/yyyy",...
same error
|
|
|
|
|
You need to change your stored proc, too. If your stored proc is like this:
CREATE PROCEDURE SomeProc
(
@filldate varchar(10),
@freedate varchar(10),
@name varchar(50)
)
Then you need to change that to:
CREATE PROCEDURE SomeProc
(
@filldate datetime,
@freedate datetime,
@name varchar(50)
)
And get rid of your conversion in the stored proc. You can't convert in both places...either convert in C#, or convert in the stored proc. If you convert in the stored proc, you will have to manually reformat the freedate and filldate strings to conform to the datetime format required by SQL Server to pass them in and convert them in the proc. Converting to DateTime in C# will be simpler, and a more stable implementation, than reformatting and converting in the proc.
|
|
|
|
|
hi,
i declared as datetime in stored procedure.
yeah iam trying in C#.
ALTER PROCEDURE InsertSuite
@filleddate datetime,
@freedate datetime,
@nameofcustomer varchar(50)
AS
BEGIN
SET NOCOUNT ON
Insert into PresidentialSuite(DateWhenFilled,DateWhenFree,NameOfCustomer)
values (@filleddate,@freedate,@nameofcustomer);
END
dont know why iam getting such error.
thanks
|
|
|
|
|
What is the error you are currently getting?
|
|
|
|
|
"String was not recognized as a valid DateTime."
though whatever conversions i used and formats iam getting same error.
|
|
|
|
|
Ok, it sounds like your input string is not in a known date time format. Can you paste a copy of the datetime string your inputting?
|
|
|
|
|
i inputed different formats 2008/02/02,02/02/2008,02/02/2008 00:00:00,
by changing formatting style from / to -,2008-02-02,02-02-2008...
|
|
|
|
|
As far as I can tell, all of those are valid. That would mean that something is happening to your input between the time you enter it, and the time you try to convert it. Debug your code, and look at what you are actually retrieving from your gridview, and make sure your getting the right information.
|
|
|
|
|
When I am declare "private Label[,] life = new Label[20, 20];"
And
"life[i,j].Click += new System.EventHandler(ClickLaBel)"
A problem was occured :
"Error 1 Use of unassigned local variable 'j'"
I don't know why ?
Can somebydy help me !
Sorry for my english.
Thank for all support !
|
|
|
|
|
breakvn wrote: Use of unassigned local variable 'j'
J doesn't have a value when you are registering the event. First assign a value for j (and i).
modified on Thursday, January 8, 2009 11:26 AM
|
|
|
|
|
Thank . So ,can you tell me how to use eventhander ...
I need detail .
Thank
|
|
|
|
|
You could try something like (don't mind about the typos):
Label tempLabel;
for (int i = 0; i<20; i++) {
for (int j = 0; j<20; j++) {
tempLabel = new Label();
tempLabel.Click += new System.EventHandler(ClickLabel)
life[i,j] = tempLabel;
}
}
|
|
|
|
|
Did you assign Label instances in your array? Initializing the array initializes all members to null.
|
|
|
|
|
breakvn wrote: Use of unassigned local variable 'j'
means j has no value yet (it is local, hence not initially zero), yet you are already reading and using it.
|
|
|
|
|
As the title is saying that shortcuts aint working(ie. Ctrl+A) in TextBox when MultiLine is true. I have tried to use my own code but i'm still hearing system exception beep when i press Ctrl + A.
private void ABCText_TXT_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyData == Keys.A)
((TextBox)sender).SelectAll();
}
any idea ?
thanks
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKSQXUFYK[M`UKs*$GwU#(QDXBER@CBN%
Rs0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
--------------------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
I just created a text box then enabled multiline and tested. Control + A works fine.
You may need to give some more information about your problem. Esp in regards to any properties you set to the text box
|
|
|
|