2013-08-05 39 views
3

我在下面得到了以下代碼,其中關注的是maskedtextbox is empty。如果它是空的INSERT INTO SQL表__.__.____ - 只有掩碼,所以我相信它INSERTS NULL但是當我填寫maskedtextbox時出了問題。它仍然INSERT__.__.____ - NULL我不知道我犯了什麼錯誤,因爲它通常應該插入maskedtextbox中的dateMaskedTextBox如果爲NULL,則向SQL中插入NULL

此文字框掩模是其中我插入這個數據是__.__.____00/00/0000

數據類型 - 日期。

下面是代碼:

var value2 = (object)DBNull.Value; 
DateTime parsedDate2; 
if (DateTime.TryParseExact(maskedTextBox2.Text, "__.__.____", null, 
          DateTimeStyles.None, out parsedDate2)) 
{ 
    value2 = parsedDate2; 
} 
prikaz.Parameters.AddWithValue("@odjdate", value2); 

編輯:下面這段代碼表示:名稱「值」不存在當前上下文」存在

var value2 = (object)DBNull.Value; 
DateTime parsedDate2; 
if (DateTime.TryParseExact(maskedTextBox2.Text, "dd.MM.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsedDate2)) 
{ 
    value2 = parsedDate2; 
} 
prikaz.Parameters.AddWithValue("@odjdate", value2); 

下面這段代碼執行此例:

Converting into data type date wasn't succesfull. 

這是代碼

if (maskedTextBox2.Text == "__.__.____") 
{ 
    prikaz.Parameters.AddWithValue("@odjdate", null); 
} 
else 
{ 
    prikaz.Parameters.AddWithValue("@odjdate",maskedTextBox2.Text); 
} 
+1

你必須給在'DateTime.TryParseExact'而不是格式''__...是什麼你的面具格式? –

+0

@SriramSakthivel謝謝您的評論,我的面具是00/00/0000 - /被替換爲。 – Marek

+1

你的'maskedTextBox2.Text'值是怎麼樣的?顯示示例 –

回答

1

這對我工作得很好:

var value2 = (Object)DBNull.Value; 
DateTime parsedDate2; 
if (DateTime.TryParse(maskedTextBox1 .Text, out parsedDate2)) 
{ 
    value2 = (Object)parsedDate2; 
} 
prikaz.Parameters.AddWithValue("@odjdate", value2);  
1

試試這個

var value2 = (object)DBNull.Value; 
DateTime parsedDate2; 
if (DateTime.TryParseExact(maskedTextBox2.Text, "dd.MM.yyyy", CultureInfo.InvariantCulture,DateTimeStyles.None, out parsedDate2)) 
{ 
    value2 = parsedDate2; 
} 

注意:如果您的格式是「MM.DD.YYYY」然後替換格式進行解析的工作!

這應該工作

+0

我編輯了我的答案它給了這個錯誤 - 名稱'value2'在當前上下文中不存在,我編輯了答案,以便您可以看到我輸入的內容 – Marek

+1

@Marek您沒有刪除表示'var value2 = ...',是嗎? – jszigeti

+1

N o我只給了OP部分替換。我沒有建議刪除任何其他行。現在清楚了@Marek –