PDA

View Full Version : سوال: مشکل مرتب کردن حروف «ک» «و» «ه»



sohrabi1383
پنج شنبه 28 آبان 1394, 23:05 عصر
وقتی در C#‎‎ برای مرتب کرده یک بانک اطلاعاتی از دستور order استفاده می کنیم حرف «ک» را بعد از حرف «م» می آورد باید چطور به صورت صحیح سرت کنیم

وقتی می خواهیم یک بانک اطلاعاتی را بر حسب حروف الفبا مرتب کنیم و از دستور order استفاده می کنیم حروف «ک» «و» «ه» به صورت صحیح مرتب نمی شود. من از دستور زیر استفاده می کنم

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace sort
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\sort.accdb;";// آدرس بانک اطلاعاتی را می گیرد
OleDbConnection myConnection = new OleDbConnection(connectionString);
string query = "select harf from sort order by harf "; // ستون مورد نظر را انتخاب می کند و مرتب می کند
OleDbDataAdapter myAdapter = new OleDbDataAdapter(query, myConnection);
DataSet employeeData = new DataSet();
myAdapter.Fill(employeeData);
// این حلقه بانک اطلاعاتی مرتب شده را در لیست باکس نمایش می دهد
foreach (DataTable table in employeeData.Tables)
{
foreach (DataRow row in table.Rows)
{
listBox1.Items.Add(row["harf"].ToString());
}
}
}
}
}


فایل ضمیمه هم به صورت زیر است

reza_ali202000
جمعه 29 آبان 1394, 01:24 صبح
generalTextBox1.Text.Replace("ی", "ي").Replace("ک", "ك").Replace("و", "و")
موقع ذخیره سازی داده ها دستور بالا رو انجام بده.انشالله درست میشه.

mr_ayma
جمعه 29 آبان 1394, 12:12 عصر
سلام کدتون مشکلی نداره ، در واقع شما اگر داخل خود اکسس هم Sort رو بزنین می بنید همین خروجی که تو سی شارپ دیده میشه اونجا هم هست ، مشکل به این موضوع برمی گرده که قبلا" که در مایکروسافت محصولات فارسی وجود نداشته بعضی ها اقدام به معادل سازی حروف عربی کردند ، اگر « ی »به « ي » و ک به « ك » تغییر کنه مشکل حل میشه ،من فایل اکسس رو که تغییر دادم براتون ضمیمه می کنم جایگزین فایل اکسس خودتون بکنین مشکل حل میشه

sohrabi1383
جمعه 29 آبان 1394, 12:53 عصر
من در تکس باکس از دستور

textBox1.Text = textBox1.Text.Replace("ی", "ي").Replace("ک", "ك").Replace("و", "و");

ستفاده کردم ولی مشکل اینجاست که هر وقت سه حرف «ک» «ی» «و» وارد می شود مکان نما در تکس باکس به اول تکس باکس می ره و این موجب میشه کلمه «کریمی» به «ميريك» تبدیل بشود چطور می تونم مکان نما را آخر تکس باکس ببرم. فایل ضمیمه را هم فرستادم

reza_ali202000
شنبه 30 آبان 1394, 00:24 صبح
شما زمانی که دستور insert رو میخواید فراخونی کنید این ریپلایس رو انجام بدین.
مثلا:
insert into....textbox2.text,textbox3.text,textBox1.Text. Replace("ی", "ي").Replace("ک", "ك").Replace("و", "و");.

sohrabi1383
یک شنبه 08 آذر 1394, 17:53 عصر
ببخشید مشکل حل نشد دو حرف واو در

insert into....textbox2.text,textbox3.text,textBox1.Text. Replace("ی", "ي").Replace("ک", "ك").Replace("و", "و");

یکی هستند.

sohrabi1383
یک شنبه 08 آذر 1394, 18:14 عصر
سلام کدتون مشکلی نداره ، در واقع شما اگر داخل خود اکسس هم Sort رو بزنین می بنید همین خروجی که تو سی شارپ دیده میشه اونجا هم هست ، مشکل به این موضوع برمی گرده که قبلا" که در مایکروسافت محصولات فارسی وجود نداشته بعضی ها اقدام به معادل سازی حروف عربی کردند ، اگر « ی »به « ي » و ک به « ك » تغییر کنه مشکل حل میشه ،من فایل اکسس رو که تغییر دادم براتون ضمیمه می کنم جایگزین فایل اکسس خودتون بکنین مشکل حل میشه

هنوز مشکل برای حروف «و»«ه» وجود داره