2013-02-22 4 views
-1

У меня есть этот код в C#:DateTimePicker и smalldatetime

label3.Text = dateTimePicker1.Value.ToString(); 
DateTime vencim = dateTimePicker1.Value; 
DataTable llenar3 = minaf.cargrid3(vencim); 
BindingSource forwo = new BindingSource(); 
forwo.DataSource = llenar3; 
dataGridView1.AutoGenerateColumns = true; 
dataGridView1.DataSource = llenar3; 
dataGridView1.Refresh(); 

cargrid3 это:

DataTable rcargaP = new DataTable(); 
SqlConnection abre1 = Tconex.GetConnection(); 
SqlDataAdapter da3 = new SqlDataAdapter(); 
SqlCommand llena5 = new SqlCommand("vencedata", abre1); 
SqlParameter para1 = new SqlParameter("@venci", SqlDbType.SmallDateTime); 
para1.Value = vence; llena5.Parameters.Add(para1); 
llena5.CommandType = CommandType.StoredProcedure; 
da3.SelectCommand = llena5; 
da3.Fill(rcargaP); 
return rcargaP; 

и процедура заключается в следующем:

alter proc vencedata (@venci datetime)as 
select conta,vencimento,pagamento,historico,original,formpagto,planoconta,clifor 
from financeiro where vencimento >= @venci 
order by vencimento desc 

в DateTimePicker работ, прок работает, если я пишу в SQL Studio:

vencedata '01/31/2013' 

процедура vencedata работает только в этом формате

vencedata '03/28/2013' (mm/dd/yyyy) 

но когда я пытаюсь

vencedata '28/03/2013'(dd/mm/yyyy) 

у меня есть тоже попробовать это:

alter proc vencedata (@inicio smalldatetime/*,@final smalldatetime*/)as 
select idconta,vencimento,pagamento,historico,original,formpagto,planoconta,clifor 
from financeiro where vencimento >= convert (varchar, @inicio,101) 

а не работают.

+0

Вы не показали, где 'vence' происходит от вообще ... очень сложно помочь вам с таким запутанным вопросом. –

ответ

0

Вы должны преобразовать дату в строке в правильном формате, а затем передать ее как параметр.

Попробуйте это.

para1.Value = String.Format("{0:d/M/yyyy HH:mm:ss}", vence); 

Надеюсь, это поможет вам.

С уважением,

0

Предположив, что Ванс является строкой, удерживая DateTimePicker1 выбранную дату, вы можете попробовать это:

para1.Value = vence.ToString("MM/DD/AAAA"); 
+0

Эта строка не работает para1.Value = vence.ToString ("MM/DD/AAAA"); –

Смежные вопросы