2013-09-30 50 views
0
string _name = txtName.Text; 
string _addr = txtAddr.Text; 
DateTime _dof = DateTime.Parse(drpDate.SelectedValue + drpMonth.SelectedValue + drpYear.SelectedValue); 
string _country = drpCountry.SelectedValue; 
string _gender = rdiomf.SelectedValue; 

using (SqlConnection conn = conMgr.GetDatabaseConnection()) 
{ 
    using (SqlCommand cmd = new SqlCommand("insertStudent",conn)) 
    { 
     cmd.CommandType = CommandType.StoredProcedure; 

     cmd.Parameters.Clear(); 
     cmd.Parameters.AddWithValue("@sName", _name); 
     cmd.Parameters.AddWithValue("@sAddress", _addr); 
     cmd.Parameters.AddWithValue("@sDob", _dof); 
     cmd.Parameters.AddWithValue("@sCountry", _country); 
     cmd.Parameters.AddWithValue("@sGender", _gender); 

     cmd.ExecuteNonQuery(); 
    } 

    conn.Close(); 
} 

錯誤說錯誤日期。我使用下拉框獲取日期。我怎樣才能解決這個問題?請幫幫我。我是新來的存儲過程和asp.net如何將日期時間傳遞到存儲過程

+1

什麼是'@ sDob'參數的類型?由於前綴's',我猜測varchar(string)。您應該將該參數改爲「DateTime」類型。 –

+0

@Lasse V. Karlsen我的sDob參數是DateTime類型。不是字符串 –

+0

一些提示調試這個:你在哪一行得到錯誤,'DateTime.Parse'或'cmd.ExecuteNonQuery'?什麼是下拉列表的值,進入'DateTime.Parse'的字符串是什麼,'_dof'的值是多少(如果代碼得到那麼多)? –

回答

4

爲此使用新的日期時間。

DateTime _dof = new DateTime(Convert.ToInt32(drpYear.SelectedValue), Convert.ToInt32(drpMonth.SelectedValue), Convert.ToInt32(drpDate.SelectedValue)); 
1

我認爲使用三個下拉列表構建日期並不是一個好主意。處理驗證非常困難。 (例如,2013年2月30日是有效日期?)請使用Patetimepicker中的.net構建。這一切都是由框架處理的。如果是客戶端,則使用JQuery插件。

然後,您可以簡單地將該dateTimePicker1.Value傳遞給存儲過程參數。

這對你更容易。

0

你可以通過用戶的jQuery日期選擇器,而不是三個下拉..

  <html lang="en"> 
     <head> 
     <meta charset="utf-8" /> 
      <title>jQuery UI Datepicker - Default functionality</title> 
      <link rel="stylesheet"href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> 
      <script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
      <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 
      <link rel="stylesheet" href="/resources/demos/style.css" /> 
       <script> 
        $(function() { 
        $("#datepicker").datepicker(); 
        }); 
       </script> 
      </head> 
      <body> 
      <p>Date: <input type="text" id="datepicker" /></p> 
     </body> 
      </html> 
0

您可以如下使用下拉值: -

串_datetime = drpMonth.SelectedValue + drpDate.SelectedValue + drpYear.SelectedValue

Datetime _dof = Convert.ToDateTime(_datetime);

1

你這樣做的方式你試圖轉換我們說010213這是你正試圖轉換的格式,它將獲取String was not recognized as a valid DateTime.錯誤。使用-來區分月份和年份。

DateTime _dof = Convert.toDateTime(drpDate.SelectedValue +"-"+ drpMonth.SelectedValue +"-"+drpYear.SelectedValue); 

或使用此過載。

enter image description here

相關問題