0

.net Framework 3.5 と互換性のあるアプリケーションを開発して、他のアプリケーションでもビルドを実行できるようにしました。

ビルドしたアプリケーションのOSはWindows 7です。

Windows XP でビルドを実行すると、次のコードでこのエラーが発生します。

dtBillDate.Text = ds.Tables[0].Rows[0]["Dt"].ToString(); 

ここdtBillDateに DateTimePickerControl があります。

dsレコードを埋める SQL クエリは次のとおりです。

query = "Select M.BillNo,M.PartyName,M.Address,M.City,M.State,M.TaxType,
M.BillType,FORMAT(M.BillDt,'dd-mm-yyyy')as Dt,
M.CST,M.GST,M.TransportName,M.TruckNo,M.Through,M.Tax,M.AddTax,M.Charges from BillMaster M where M.BillNo=" + billNo;

レコードは Access 2007 データベースに保存されます。

エラーに取り組むためにどのような変更を加える必要がありますか。

助けてください。前もって感謝します。

4

3 に答える 3

0

Try this:

DateTime dateTime;
string dateString = ds.Tables[0].Rows[0]["Dt"].ToString();
bool result = DateTime.TryParse(dateString , out dateTime);

if(result)
{
     // Use `dateTime` variable then
}
于 2013-04-26T21:39:17.833 に答える
0

クエリで日付をフォーマットしています

FORMAT(M.BillDt,'dd-mm-yyyy')as Dt

おそらく分ではなく月が必要なので、あなたのフォーマットmmではすべきですMM

日付を解析するには、形式でDateTime.ParseExactを使用する必要があります。dd-MM-yyyyただし、クエリが書式設定なしで DateTime を返すようにし、.Net アプリケーションで日付を書式設定して表示できるようにすることをお勧めします。

DateTimePicker日付を表示するには、コントロール値を設定する必要があります。DateTime.ParseExact次のように解析するために使用できます。

dtBillDate.Value = DateTime.ParseExact(ds.Tables[0].Rows[0]["Dt"].ToString(), 
                                       "dd-MM-yyyy", 
                                       CultureInfo.InvariantCulture);
于 2013-04-26T07:15:40.557 に答える
0

基本的に、win 7 では、日付区切り文字が「-」である「English INDIA」形式が使用できます。しかし、Win XP では "English India" 形式は使用できないため、"/" を日付の区切り記号として使用する日付に "English US または UK" 形式を使用している可能性があります。

問題を解決するには、Windows XP マシンで日付の区切り記号の形式を「-」に変更するだけです。[コントロール パネル] > [地域と言語のオプション] > [カスタマイズ] をクリックし、[日付] タブを開きます。 DATE SEPARATOR を「-」に設定します。アプリケーションはエラーなしで動作します。ハッピーナウ:D

于 2013-09-23T14:20:59.547 に答える