【解決方法】取得 | DataGridView でペルシャ日付を設定します。


親愛なる専門家。
「SQLServer 2008」をバインドする「VS2010」でWindowsアプリケーションを作成しています。
「DataSource ウィザード」を使用して、DataSet、BindingSource、TableAdapter、BindaingNavigator、および DataGridView を操作します。
「データベース」に Sample という名前の「テーブル」があります。
ファイルの 1 つに「DateTime」データ型があります。 フィールドの名前は「日付」です。
データベースから「取得」するとき、およびデータベースに「設定」するときに、データを「変換」したい。
変換は、「datetime」から「persian datetime」およびその逆です。

このコードで「CellFormatting」イベントを使用して、DataGridView での「取得」データ変換を解決します。

C#
private void StudentExamDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if (e.Value == DBNull.Value || e.Value == null)
                return;

            if (e.ColumnIndex < 0 || e.RowIndex < 0)
                return;
            if (e.ColumnIndex == StudentExamDataGridView.Columns["Date"].Index)
            {
                e.FormattingApplied = true;
                e.Value = new PersianCalendarEx(Convert.ToDateTime(e.Value)).PersianDate;
            }
        }

それは完璧に動作します。
しかし問題は、ユーザーが「ペルシャ形式」(例: 1391/12/21) で日付を入力すると、そのようにデータベースに保存され、変換が行われないことです。

persianDate を DateTime に変換する方法は知っていますが、ユーザーが DatagridView でペルシャの日付値を入力し、自動的に DateTime に変換してデータセット、データソース、またはテーブルに保存するコードの記述場所がわかりません。

助けてくれてありがとう。

解決策 1

データベースの種類を使用 DATE 文字列の代わりに、このように、フォーマット/カルチャから抽象化されます。

残りの問題は、表現する際に適切な形式を使用することです DateTime あなたのUIで。 すべてのメソッドを参照してください ToStrings:
http://msdn.microsoft.com/en-us/library/system.datetime.aspx[^].

フォーマットはフォーマット文字列、カルチャ (実装されたものを介して) で定義できることに注意してください。 IFormatProvider、次のコード サンプルを参照してください。 http://msdn.microsoft.com/en-us/library/ht77y576.aspx[^])、 または両方。

フォーマット文字列については、次を参照してください。
http://msdn.microsoft.com/en-us/library/zdtaw1bw.aspx[^]、
http://msdn.microsoft.com/en-us/library/az4se3k1.aspx[^]、
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx[^].

-SA

解決策 2

C#
DataTable table = objSelectAll from tbltest();
Tests t = null;
List<Tests>List = new List<Tests>List
for(int i=0 ; i<table.row.count ; i++)
{
t= new Tests();
t.sale-id= int.parse(table.row[i][1].value.tostring());
saleDate= convert (list.where(x => x.fDate) ' ');
list.Add
t= null;
}

コメント

タイトルとURLをコピーしました