سلام به همگی
من یک برنامه دارم که با استفاده از یک باتن و ریبون منو به بانک اطلاعاتیم وصل میشه (sql server) . یکی از گزینه های ریبون منو با کدهای زیر به بانک اطلاعاتیم وصل شد و اطلاعات تیبل رو درون جدول به درستی نمایش داد. همونو برای یکی دیگه از باتن های ریبون منو کپی کردم با یک تیبل جدید ولی ارور میده ... خطای سینتکس هم ندارم ... همه ی اطلاعات مربوط به جدول و دکمه جدید هم به روز کردم و ربطی به دکمه قبلی نداره .ممنون میشم راهنمایی بفرمایید(این مدل کدنویسی هم مربوط به سرچ از روی تاریخ فارسی هست)
var u = query.ToList(); اینجا برنامه متوقف میشه
.'System.Data.SqlClient.SqlExcetion:'Unclosed quotation mark after the character string '1398/11/09
'.'Incorrect syntax near '1398/11/09
اینم خطاش (بالا)
private void Window_Loaded(object sender, RoutedEventArgs e)
{
ShowUserInfo(SearchStatement);
}
private void ShowUserInfo(Func<string>SearchStringForUsers)
{
var query = database.Database.SqlQuery<Vw_Customer>("Select * From Vw_Customer where 1=1" +
SearchStringForUsers());
var u = query.ToList();
dataGrid_customer.ItemsSource = u;
}
private string SearchStatement()
{
string searchstring = "and UserStartDate Between '" + string.Format("{0:yyyy/MM/dd}",
Convert.ToDateTime(calendar_az.Text)) + "'And'" + string.Format("{0:yyyy/MM/dd}",
Convert.ToDateTime(calendar_ta.Text));
if (txt_name.Text != "")
{
searchstring += "and CustomerName Like '%" + txt_name.Text.Trim() + "%'";
}
if (txt_family.Text != "")
{
searchstring += "and CustomerFamily Like '%" + txt_family.Text.Trim() + "%'";
}
return searchstring;
}
private void image_search_MouseDown(object sender, MouseButtonEventArgs e)
{
ShowUserInfo(SearchStatement);
}
بنظرم یک اشکالی که در کدهای شما وجود داره اینه که توی ساختن کوئری فاصله (space) رو به خوبی نذاشتید.
مثلا در کد زیر
var query = database.Database.SqlQuery<Vw_Customer>("Select * From Vw_Customer where 1=1" +
بعد از 1=1 باید یک فاصله بذارید. یا در کد زیر
string searchstring = "and UserStartDate Between '" + string.Format("{0:yyyy/MM/dd}",
قبل از کلمه and و در انتهای کوئری باید فاصله بذارید. یا مثلا کد زیر
if (txt_family.Text != "")
{
searchstring += "and CustomerFamily Like '%" + txt_family.Text.Trim() + "%'";
}
دوباره قبل از and فاصله نذاشتید
این باعث میشه وقتی کوئری شما ایجاد میشه دستورات Sql به هم بچسبن و عملا کوئری خراب بشه. توی ساختن کوئری این اشکال رو خیلی زیاد مشاهده می کنم.
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1160
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
597
- پاسخ :
1
|
تاریخ :
1403/07/13
- ساعت :
12:06:00 PM
- بازدید :
349
- پاسخ :
1
|
تاریخ :
1403/06/24
- ساعت :
08:52:00 PM
- بازدید :
318
- پاسخ :
1
|
تاریخ :
1398/09/14
- ساعت :
01:58:00 PM
- بازدید :
4268
- پاسخ :
1
|
تاریخ :
1403/05/16
- ساعت :
05:43:00 AM
- بازدید :
660
- پاسخ :
0
|
تاریخ :
1398/09/05
- ساعت :
06:04:00 PM
- بازدید :
3172
- پاسخ :
2
|
تاریخ :
1398/09/08
- ساعت :
11:38:00 PM
- بازدید :
3251
- پاسخ :
1
|
تاریخ :
1403/04/12
- ساعت :
07:27:00 PM
- بازدید :
658
- پاسخ :
0
|
تاریخ :
1403/01/29
- ساعت :
08:08:00 AM
- بازدید :
688
- پاسخ :
4
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2008
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
75
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
109
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1033
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
429
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4798
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1160
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
597
- پاسخ :
1
|