مرتب سازی اطلاعات در DataGrid و خطای Incorrect syntax near the keyword And
سلام دوستان
بنده یک دیتاگرید در WPF دارم که وقتی فرم لود میشه ردیف ها نامنظم نمایش داده میشه
شکل زیر:
بعد از کلی کلنجار رفتم سراغ دیتابیس که ویو ساختم براش
عکس زیر:
دیدم اونجا هم به همین شکل نمایش میده
اینم جداول ویو:
بعد دیدم ردیف ها رو با انبار محصول ست میکنه.
حالا اشتباه من کجاست که ویو نامنظم نشون میده؟
حتی ویو رو یه بار حذف و دوباره ساختم باز هم همینه.
آیا راهی هست که موقع لود دیتاگرید ردیف ها منظم نشون بده؟
اینم سلکت
#region متد ارتباط با پایگاه داده و نمایش اطلاعات در دیتا گرید
private void ShowShowCustomerShahrInfo(Func<string> SearchStringForShowCustomerShahr)
{
var query = DB.Database.SqlQuery<VwCustomer>("Select * From VwCustomer Where 1=1 Order by CustomerID" + SearchStringForShowCustomerShahr());
var U = query.ToList();
dgShowCustomerShahr.ItemsSource = U;
}
#endregion
#region تابع ساخت شرط برای نمایش اطلاعات در دیتاگرید
private string SearchStatement()
{
string searchstring = " And CustomerStartDate Between '" + String.Format("{0:yyyy/MM/dd}",
FormatStringDate(calenderAz.Text.Trim())) + "' And '" + String.Format("{0:yyyy/MM/dd}",
FormatStringDate(calenderTa.Text.Trim())) + "'";
if (txtName.Text != "")
{
searchstring += " And CustomerName Like '%" + txtName.Text.Trim() + "%'";
}
if (!string.IsNullOrEmpty(txtTel.Text.Trim()))
{
searchstring += " And CustomerTel1 Like '%" + txtTel.Text.Trim() + "%'";
}
if (txtSerial.Text != "")
{
searchstring += " And CustomerSerial Like '%" + txtSerial.Text.Trim() + "%'";
}
return searchstring;
}
#endregion
نحو نادرست در نزدیکی کلمه کلیدی "And" رو
Incorrect syntax near the keyword 'And'.
برای این کد میده
var U = query.ToList();
پاسخ هوش مصنوعی
برای مرتب سازی ردیف ها در DataGrid شما باید مطمین شوید که در بخش SQL خود، دستورات مرتب سازی به درستی قرار داده شده است. همچنین، خطای "Incorrect syntax near the keyword 'And'" معمولاً به این دلیل است که در رشته ی SQL شما، کلمه "And" در جایی قرار دارد که انتظار نمی رود. به طور خاص، اگر شرطی وجود نداشته باشد که بتواند با "And" همراه شود، این خطا به وجود می آید.
ابتدا در متد SearchStatement
بررسی کنید که آیا شرایط شما دارای مقداری هستند یا خیر. اگر هیچ شرطی اعمال نشود، "And" باید حذف شود. کد بازنویسی شده به شکل زیر است:
private string SearchStatement()
{
string searchstring = string.Empty;
if (calenderAz.Text.Trim() != "" && calenderTa.Text.Trim() != "")
{
searchstring += " And CustomerStartDate Between '" + String.Format("{0:yyyy/MM/dd}",
FormatStringDate(calenderAz.Text.Trim())) + "' And '" + String.Format("{0:yyyy/MM/dd}",
FormatStringDate(calenderTa.Text.Trim())) + "'";
}
if (txtName.Text != "")
{
searchstring += " And CustomerName Like '%" + txtName.Text.Trim() + "%'";
}
if (!string.IsNullOrEmpty(txtTel.Text.Trim()))
{
searchstring += " And CustomerTel1 Like '%" + txtTel.Text.Trim() + "%'";
}
if (txtSerial.Text != "")
{
searchstring += " And CustomerSerial Like '%" + txtSerial.Text.Trim() + "%'";
}
return searchstring;
}
در اینجا، ابتدا بررسی کنید که آیا فیلدهای تاریخ دارای مقدار هستند و سپس شرط مربوط به آن ها را به searchstring
اضافه کنید. این کار به جلوگیری از بروز خطای نحوی کمک می کند.
برای مرتب سازی DataGrid، شما می توانید در دستور SQL خود به صورت زیر عمل کنید:
var query = DB.Database.SqlQuery<VwCustomer>("Select * From VwCustomer Where 1=1 " + SearchStatement() + " Order by CustomerID");
این تغییرات به شما کمک می کند تا داده ها به صورت مرتب بارگذاری شوند و خطای نحوی "Incorrect syntax near the keyword 'And'" را نیز اصلاح کند.
سلام و وقت بخیر
برای رفع مشکل هنگام لود دیتاگرید در سی شارپ سلکت خودتون رو بر اساس کد مشتری Sort کنید.
var C = database.Database.SqlQuery<VwCustomer>("Select * from VwCustomer where 1=1 Order by CustomerID").ToList();
dataGrid.ItemsSource = C;
همونطور که تو کد بالا میبینید دقت داشته باشید Order by CustomerID باید به آخر سلکت اضافه بشه که باعث میشه بر اساس CustomerID مرتب بشه
دوست عزیز تو پاسخ قبلی عرض کردم Order by CustomerID باید به آخر سلکت اضافه بشه. لطفا کدتون رو به شکل زیر تغییر بدید.
var query = DB.Database.SqlQuery<VwCustomer>("Select * From VwCustomer Where 1=1 " + SearchStringForShowCustomerShahr() + " Order by CustomerID");
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf
- Library Animation برای کنترلهای WPF
- مشکل در تغییر مقدار Text کنترل RibbonBar در کامپوننت DevExpress
- قرار دادن مقادیر ارسالی یک ستون از جدول به صورت سطری در استیمول