علامت ؟ به جای حروف فارسی در SQL
با سلام
من موقعی که در برنامه می خوام اطلاعاتی رو به فارسی ثبت کنم به جای کاراکترهای فارسی علامت ؟ نمایش داده می شه.
در SQL هیچ مشکلی نیست . موقع تایپ در SQL و ثبت همه چیز عادیه و فارسی ثبت میشه در حالی که در برنامه مشکل هستش.
قبلاً با این برنامه کار کردم و اطلاعات درست ثبت می شد اما یه شبه این اتفاق افتاده.
من فکر می کنم نه مشکل از SQL و نه C# این مشکلیه که ویندوز به وجود آورده شما چی می گید ... ؟؟؟ :متعجب:
نقل قول: علامت ؟ به جای حروف فارسی در SQL
SqlCommand com = new SqlCommand("INSERT INTO Table1 (source) VALUES (N'" + source_values + "')", conection);
این N مشکلت رو حل میکنه
موفق باشید
نقل قول: علامت ؟ به جای حروف فارسی در SQL
وقتی که از توی خود دیتابیس (مثلا در SQL Server Management Studio) اطلاعات را میبینید باز هم علامت سوال دیده میشود؟
نقل قول: علامت ؟ به جای حروف فارسی در SQL
نقل قول:
نوشته شده توسط
afsharm
وقتی که از توی خود دیتابیس (مثلا در SQL Server Management Studio) اطلاعات را میبینید باز هم علامت سوال دیده میشود؟
بله همين طور است
نقل قول: علامت ؟ به جای حروف فارسی در SQL
نقل قول:
نوشته شده توسط
xcomlock
SqlCommand com = new SqlCommand("INSERT INTO Table1 (source) VALUES (N'" + source_values + "')", conection);
این N مشکلت رو حل میکنه
موفق باشید
براي همه رشته ها اين N رو بذارم يا يكي براي همه كافيه
نقل قول: علامت ؟ به جای حروف فارسی در SQL
اگه برات امکان داره Collection سرورت و دیتابیست رو عوض کن، که نخوای با nvarchar کار کنی و varChar کارتو راه میندازه.
نقل قول: علامت ؟ به جای حروف فارسی در SQL
Collection رو هم درست ست كردم و فيلدي هم براي آزمايش varchar گذاشتم ولي باز هم اين مشكل هست . مشكل از جاي ديگس چون اين برنام رو روي كامپيوتر ديگه تست كردم درست بود شايد مشكل از ويندوز باشه ؟؟!!
نقل قول: علامت ؟ به جای حروف فارسی در SQL
نقل قول:
نوشته شده توسط
hozouri
Collection رو هم درست ست كردم و فيلدي هم براي آزمايش varchar گذاشتم ولي باز هم اين مشكل هست . مشكل از جاي ديگس چون اين برنام رو روي كامپيوتر ديگه تست كردم درست بود شايد مشكل از ويندوز باشه ؟؟!!
اولا Collection نیست و Collation!
اگه موقع اضافه کردن N قبل از رشته بزاری حل میشه. به ویندوز ربطی نداره.
نقل قول: علامت ؟ به جای حروف فارسی در SQL
نقل قول:
نوشته شده توسط
afsharm
وقتی که از توی خود دیتابیس (مثلا در SQL Server Management Studio) اطلاعات را میبینید باز هم علامت سوال دیده میشود؟
خوب اگه اینطوره یعنی شما در زمان نصب SQL زبان Arabic رو براش نصب نکردید چون من دقیقا همین مشکل رو داشتم و با تغییر زبانش مشکل حل شد . ولی اگه اطلاعاتت از داخل دیتابیس قابل رویته مشکلت همون N هست.
نقل قول: علامت ؟ به جای حروف فارسی در SQL
Collation یا زبان مربوط به مواردی مثل نحوه سورتینگ یا فرمت تاریخ و ساعت است و ربطی به اطلاعات داخل جداول ندارد. اگر فیلدی از نوع nchar یا nvarchar تعریف شده باشد قابلیت ذخیره کاراکترهای ۲ بایتی یونیکد و در نتیجه الفبای زبان فارسی را دارد.
اگر همانطور که گفتید اطلاعات را از داخل دیتابیس هم به صورت علامت سوال میبینید فکر میکنم به دردسر افتادهاید. این یعنی SQL Server در هنگام ورود اطلاعات نفهمیده شما چه میگویید و به جای اطلاعات شما علامت سوال وارد کرده است. متاسفانه (تا آنجا که من میدانم) در این حالت اطلاعات شما از بین رفته است و باید از اول وارد شود.
برای جلوگیری از وقوع این مشکل همان طور که همه دوستان اشاره کردند در هنگام ورود اطلاعات به جداول از عملگر N استفاده کنید. این عملگر به SQL Server میگوید که با این رشته به صورت کاراکترهای یونیکد (۲ بایتی) برخورد کند.
نقل قول: علامت ؟ به جای حروف فارسی در SQL
با سلام
یه راه دیگه علاوه بر استفاده از N ، استفاده از پارامترهاست، بدین صورت که بعد از نوشتن SQLCommand مقادیر رو به صورت پارامتر بهش اضافه کنی. از مزیت این راه امنیت و validate شدن اطلاعات قبل از ورود به دیتابیسه.
نقل قول: علامت ؟ به جای حروف فارسی در SQL
خب از راهنمايي شما ممنونم ولي چرا وقتي ويندوز رو عوض كردم (همون ويندوز قبلي رو هم نصب كردم)
ديگه اين مشكلات پديدار نشد اگه اين ها مربوط به SQL باشه پس الآن هم نبايد درست عمل كنه !!!
نقل قول: علامت ؟ به جای حروف فارسی در SQL
نقل قول:
نوشته شده توسط
hozouri
خب از راهنمايي شما ممنونم ولي چرا وقتي ويندوز رو عوض كردم (همون ويندوز قبلي رو هم نصب كردم)
ديگه اين مشكلات پديدار نشد اگه اين ها مربوط به SQL باشه پس الآن هم نبايد درست عمل كنه !!!
یعنی همون دیتابیس را در ویندوز دیگری مورد استفاده قرار دادی و همه چیز درست شد؟ چه از داخل برنامه خودتان چه به طور مستقیم از داخل SQL Server؟
نقل قول: علامت ؟ به جای حروف فارسی در SQL
نقل قول:
نوشته شده توسط
afsharm
یعنی همون دیتابیس را در ویندوز دیگری مورد استفاده قرار دادی و همه چیز درست شد؟ چه از داخل برنامه خودتان چه به طور مستقیم از داخل SQL Server؟
بله دقیقاً همه موارد صادق بود ... فکر کنم مشکل از آپدیت ویندوز باشه !
نقل قول: علامت ؟ به جای حروف فارسی در SQL
به نظر میآد اطلاعات مورد نظر به صورت غیر یونیکد ذخیره شده باشن. چون به ویندوز و کدپیج پیش فرض آن وابسته هستند. بهتره همه فیلدها از نوع nchar یا nvarchar تعریف شده و به هنگام ورود اطلاعات از عملگر N استفاده شود. اینطوری هر وقت که ویندوز عوض کردی این اتفاق نمیافته.
نقل قول: علامت ؟ به جای حروف فارسی در SQL
نقل قول:
نوشته شده توسط
afsharm
بهتره همه فیلدها از نوع nchar یا nvarchar تعریف شده و به هنگام ورود اطلاعات از عملگر N استفاده شود. اینطوری هر وقت که ویندوز عوض کردی این اتفاق نمیافته.
همه این کارها رو انجام دادم ولی بازم بشکل علامت سوال ذخیره میشه!!!
چرا؟!!
"Insert Into lab_married(male_name,male_father_name,male_age,"
+ "female_name,female_father_name,female_age) Values(N'" + textBoxMName.Text + "',N'"
+ textBoxMFatherName.Text + "',N'" + textBoxMAge.Text + "',N'" + textBoxFName.Text + "',N'"
+ textBoxFFatherName.Text + "',N'" + textBoxFAge.Text + "')";
نقل قول: علامت ؟ به جای حروف فارسی در SQL
نقل قول:
نوشته شده توسط
Sociant
همه این کارها رو انجام دادم ولی بازم بشکل علامت سوال ذخیره میشه!!!
چرا؟!!
"Insert Into lab_married(male_name,male_father_name,male_age,"
+ "female_name,female_father_name,female_age) Values(N'" + textBoxMName.Text + "',N'"
+ textBoxMFatherName.Text + "',N'" + textBoxMAge.Text + "',N'" + textBoxFName.Text + "',N'"
+ textBoxFFatherName.Text + "',N'" + textBoxFAge.Text + "')";
این طور که پیداست فراخوانی این کد به صورت Embeded است یعنی از داخل C# یا وبی یا دلفی صدا زده میشه. مطمئن نیستم در این طور حالات نیازی به استفاده از عملگر N باشد. یک بار هم بدون N استفاده کن. ببین درست میشه یا نه.
نقل قول: علامت ؟ به جای حروف فارسی در SQL
سلام.منم همین مشکل رو دارم ، همه کارهایی که دوستان تو پست های قبلی گفتن رو هم انجام دادم.ولی هنوز مشکل دارم.من از vs 2008 استفاده می کنم و SQL sever 2005. به اینا که ربطی نداره؟!!
نقل قول: علامت ؟ به جای حروف فارسی در SQL
درود بر همه دوستان
منم يه روزي اين مشكلو داشتم ولي حل شد.
براي حل اين مشكل بايد در زمان ساخت بانك اونجايي كه اسم بانكو تعيين ميكنيد پايين صفحه از قسمت collation name گزينه ي arabic_ci_ai رو انتخاب كنيد.
البته از نوع nvarchar هم استفاده كنيد.
حامد رشنو...
نقل قول: علامت ؟ به جای حروف فارسی در SQL
سلام البته خیلی از زمان این پست میگذره اما خوب من هم تجربه ی خودم رو قرار می دم برای استفاده آیندگان...
من این مشکل رو داشتم از پارامتر N استفاده کردم و البته تعریف بانک رو روی nvarchar قرار دادم اگر از پارامتر N استفاده کنیم ولی تعریف بانک روی nvarchar نباشه عمل نمیکنه
ممنون.
نقل قول: علامت ؟ به جای حروف فارسی در SQL
نقل قول:
نوشته شده توسط
javady_joon
سلام البته خیلی از زمان این پست میگذره اما خوب من هم تجربه ی خودم رو قرار می دم برای استفاده آیندگان...
من این مشکل رو داشتم از پارامتر N استفاده کردم و البته تعریف بانک رو روی nvarchar قرار دادم اگر از پارامتر N استفاده کنیم ولی تعریف بانک روی nvarchar نباشه عمل نمیکنه
ممنون.
سلام
مشکل این دوستمون توی استفاده از فارسی ساز کیبرده بجای Fa احتمالا از FAS استفاده میکرده بهمین خاطر بعد نصب مجدد ویندوز مشکلش هم حل شده