PDA

View Full Version : مشکل در select یک فیلد با مقادیر فارسی از یک جدول در sql



z.gh_user
سه شنبه 25 مرداد 1390, 12:05 عصر
با سلام
من یک تابع نوشتم برای اینکه مواقعی که مقداری تکراری برای یکی از textbox هام(نوع بیمه) وارد شد پیغام بده اما اینکارو انجام نمیده,( توی خود sql هم دستورو run میکنم جواب نمیده) , فکر میکنم چون با مقادیر فارسی پر شده مشکل داره
آیا راه حلی وجود داره؟

f.nabavi
سه شنبه 25 مرداد 1390, 12:48 عصر
لطفا نوع فیلد و کدی رو که نوشتید اینجا بذارید تا تصحیح کنیم

z.gh_user
سه شنبه 25 مرداد 1390, 13:42 عصر
با سپاس از توجه تون
فیلد bimeh_type از نوع nvarchar با طول 100 در sql2000


PublicSub select_exists_bimeh_type(ByVal sqlcommand2 As SqlClient.SqlCommand) '******** چک کردن وجود اطلاعات شماره پرونده مورد نظر********
sqlcommand2.Connection = SqlConnection1
sqlcommand2.CommandText = "select * from bimeh_tariff where bimeh_type='" & txtbime_type.Text.Trim & "'"
Try
Dim i AsInteger = 0
Dim dr2 As SqlClient.SqlDataReader
dr2 = sqlcommand2.ExecuteReader
If dr2.HasRows Then
check = False
MessageBox.Show("پرونده ای با این نوع بیمه موجود می باشد", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading)
EndIf
If dr2.IsClosed = FalseThen
dr2.Close()
EndIf
Catch ex As SqlClient.SqlException
MsgBox(ex.ToString)
Catch ex As Exception
MsgBox(ex.ToString)
ExitSub
EndTry
EndSub

که این تابع رو توی
txtbime_type_LostFocus و همچنین قبل از ثبت صدا زدم

f.nabavi
سه شنبه 25 مرداد 1390, 14:39 عصر
وقتی دارید با فیلد هایی از نوع nvarchar یا هر فیلدی که یونیکد قبول میکنه کار میکنید، در کامند ها باید یک حرف N قبل از مقدار مورد نظر بذارید. مثلا فیلد name برابر علی باشه :
where [name] = N'علی'

z.gh_user
چهارشنبه 26 مرداد 1390, 08:49 صبح
حق با شماست ,خیلی ممنون