日期:2014-05-18  浏览次数:20920 次

c# 数据库中姓名按拼音排序 提示错误
我按联系方式排序都正常,但是按姓名拼音排序或是笔画排序提示错误,语句如下:
C# code

        private void button15_Click(object sender, EventArgs e)//排序按钮
        {
            myorderby = "SELECT 姓名,性别,生日 FROM person ORDER BY 姓名 COLLATE Chinese_PRC_CS_AS_KS_WS ASC";//按拼音排序
            myda = new OleDbDataAdapter(myorderby, mycon);
            DataSet myds = new DataSet();
            myda.Fill(myds);
            this.dataGridView5.DataSource = myds.Tables[0].DefaultView;  
        }



错误信息:显示“myda.Fill(myds);”这一行错误——未处理OledbEXCEPTION“IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。”



------解决方案--------------------
用odbc

------解决方案--------------------
myorderby = "SELECT 姓名,性别,生日 FROM person ORDER BY 姓名 COLLATE Chinese_PRC_CS_AS_KS_WS ASC";//按拼音排序
SqlDataAdapter myda = new SqlDataAdapter(myorderby, mycon);
DataSet myds = new DataSet();
myda.Fill(myds.table[0]);


这样不好点吗?
------解决方案--------------------
这位,"姓名,性别,生日"这些可以用英文表示吗,哎,这要是拿到公司里去,不说你才怪,还有,你排序时,好像就是按拼音排序,因为都是字符串,没必要后面还加这些“COLLATE Chinese_PRC_CS_AS_KS_WS ”。

自己好好想想