1 ضمیمه
ارور هنگام ارسال مقدار تاریخ به پایگاه داده sql
راستش من اولی باره که با اس کیو ال یا C# کار میکنم و express2005 هستش . من موقعی که مقدار تاربخ رو به این شکل 1390/01/24 به بانک میفرستم ثبت میشه اما این خطا رو میده startIndex cannot be larger than length of string.
Parameter name: startIndex
حالا من تو جدولم DATATYPE رو NCHAR(10 ) انتخاب کردم . و DATATIME نیست . میشه تو این ارور کمکم کنید . ممکنه مشکل از همین که گفتم باشه؟
نقل قول: ارور هنگام ارسال مقدار تاریخ به پایگاه داده sql
این خطا مربوط به Insert نیست، مربوط به تکست باکستونه که وقتی میخواین متنشو پاک کنین خطا داده،ببینین تکست باکستون جطوریه؟
نقل قول: ارور هنگام ارسال مقدار تاریخ به پایگاه داده sql
نقل قول:
نوشته شده توسط
RIG000
راستش من اولی باره که با اس کیو ال یا C# کار میکنم و express2005 هستش . من موقعی که مقدار تاربخ رو به این شکل 1390/01/24 به بانک میفرستم ثبت میشه اما این خطا رو میده
startIndex cannot be larger than length of string.
Parameter name: startIndex
حالا من تو جدولم DATATYPE رو NCHAR(10 ) انتخاب کردم . و DATATIME نیست . میشه تو این ارور کمکم کنید . ممکنه مشکل از همین که گفتم باشه؟
این error که داده واسه طول رشته است nchar را 15 بگذار شاید درست بشه
نقل قول: ارور هنگام ارسال مقدار تاریخ به پایگاه داده sql
از nchar نبود datetime هم کردم نشد. و textbox من یه dll هستش که فارسیه . و من رو تاریخ تنظیمش کردم . موقعی که میخام تاریخ رو بنویسم توش به این شکله . _/_/_ 13 حالا موقعی که چیز مینوسم ثبی شه . مینوسه تو بانک 695 در صورتی که من 1390/01/05 به طور مثال ثبت کردم .
نقل قول: ارور هنگام ارسال مقدار تاریخ به پایگاه داده sql
آره این ارور به خاطر طول کاراکترته چون از nchar(10 استفاده کردی حداکثر تعداد کاراکتر مجاز هم 10 تا است پس باید تعداد کاراکتر هاتو بیشتر کنی
اما اگه اون موقع که از datatime استفاده می کردی جهت اطلاع بهت می کم که datatime تاریخ شمسی رو نمی شناسه و ارور میده
نقل قول: ارور هنگام ارسال مقدار تاریخ به پایگاه داده sql
نوع داده نمیتونه datetime باشه چون تاریخ شمسی رو نمیشه ذخیره کرد!!
اون مشکل هم از کامپوننت هست به جای خطی که خطا داده این رو بنویس ببین درست میشه:
txtProNet2.Text = "1390/01/24";
نقل قول: ارور هنگام ارسال مقدار تاریخ به پایگاه داده sql
راستش اینجوری که نمیشه . من مقدار رو دارم به بانک میفرستم . نمیهام همیشه یه مقدار ثابت باشه که . در ضمن از همون dll واسه نام هم استفاده کردم اما اونو ایراد نمیگیره . طول کاراکترم زیاد کردم باز نشد.!!!!!!! خدا وکیلی حیف نیست این access .
نقل قول: ارور هنگام ارسال مقدار تاریخ به پایگاه داده sql
دوست عزیز میشه کدتون رو بذارین اینجا تا بهتر متوجه مشکلتون بشم!!!
احساس میکنم یه جای کار میلنگه!!!:گیج:
نقل قول: ارور هنگام ارسال مقدار تاریخ به پایگاه داده sql
احتمالا تو اون Component که استفاده میکنید وقتی که رو تاریخ تنظیم شده باشه واسه رویداد Textchangeش یه کدی نوشته شده که تو اون کد داره از تابع substring یا یه چیزی مثل این استفاده میکنه که چون شما text رو "" گذاشتین دستور substring به خطا خورده که طول رشته ای که تو textbox هست غیر معتبر_وقتی خالی میکنین متنش رو 0 میشه طول رشته و خطا داده) باید ببینین مقدار Default خود این Component وقتی تاریخ باشه چیه و به جای "" همون رو بذارید
1 ضمیمه
نقل قول: ارور هنگام ارسال مقدار تاریخ به پایگاه داده sql
دوست عزیز
نحوه ثبت اطلاعات تو بانک از چه راهی انجام می دهید
اگر از دیتاست استفاده میکنید که دات نت می سازه هم جور جای مانور داره
این کد با 2010 و sql2005 رودانلود کن
تازه اینکه اس کیو ال 2008 از تاریخ فارسی با datetime2 استفاده کنید
این نوع تاریخ محلی(فارسی)رو پشتیبانی می کنه
1 ضمیمه
نقل قول: ارور هنگام ارسال مقدار تاریخ به پایگاه داده sql
private void button1_Click_1(object sender, EventArgs e)
{
if (txtProNet1.Text == "")
{
MessageBox.Show("لطفا شماره اندیکاتور را وارد کنید");
}
else if (textBox3.Text == "")
{
MessageBox.Show("لطفا شماره نامه را وارد کنید");
}
else
{
string s2 = string.Format("insert into Ersalikhareji
values( {0},'{1}','{2}','{3}','{4}','{5}')", txtProNet1.Text, textBox3.Text,
txtProNet2.Text,
txtsabtE2.Text, txtProNet3.Text, comboBox1.Text);
Access.insert(s2);
showdataforEditforErsali();
txtProNet1.Text = "";
textBox3.Text = "";
txtProNet2.Text = "";
txtsabtE2.Text = "";
txtProNet3.Text = "";
comboBox1.Text = "";
}
}
این کد و حالا خاصیت های dll . خاصیت type date shamsi رو true کردم و دو خاصیت دیگه مربوط یه dll که تو عکس نشون دادم
نقل قول: ارور هنگام ارسال مقدار تاریخ به پایگاه داده sql
if (txtProNet1.Text == "")
{
MessageBox.Show("لطفا شماره اندیکاتور را وارد کنید");
}
else if (textBox3.Text == "")
{
MessageBox.Show("لطفا شماره نامه را وارد کنید");
}
else
{
string s2 = string.Format("insert into Ersalikhareji values( {0},'{1}','{2}','{3}','{4}','{5}')", txtProNet1.Text, textBox3.Text, txtProNet2.Text, txtsabtE2.Text, txtProNet3.Text, comboBox1.Text);
Access.insert(s2);
showdataforEditforErsali();
txtProNet1.Text = "";
textBox3.Text = "";
txtProNet2.Text = "13__/__/__";
txtsabtE2.Text = "";
txtProNet3.Text = "";
comboBox1.Text = "";
}
حل شد. بی تعارف منم گیج میزنم رسما" . :اشتباه::افسرده::لبخند: اما از همه ممنون که کمک کردین . خیلی ممنون . فکر فهمیده باشین موضوع چی بوده .....:اشتباه: