【问题标题】:Pass DateTimePicker Value to a stored procedure C#将 DateTimePicker 值传递给存储过程 C#
【发布时间】:2015-07-16 00:24:35
【问题描述】:

我有DataGridViewDateTimePicker,我想根据DateTimePicker 值在DataGridView 中显示数据。

这是存储过程:

create proc Get_Employers_All_Day
    @Date_Day date
as 

SELECT 
    [Employer_ID] as 'رقم الموظف'
    , Employer_Name as 'اسم الموظف'
FROM [dbo].[Come_Out]
inner join Employers 
    on Employers .Epmloyer_ID = Come_Out .Employer_ID 
where 
    Come_Out .Status = '2'
     and Come_Out .Data_Come_Out = @Date_Day 

这是 C# 代码:

public void Get_Employers_All_Day(DateTime Date_Day)
{

    DAL.DataAccessLayer DAL = new DAL.DataAccessLayer();
    DAL.Open();

    SqlParameter[] param = new SqlParameter[1];
    param[0] = new SqlParameter("@Date_Day", SqlDbType.DateTime);
    param[0].Value = Date_Day;

    DAL.ExecuteCommand("Get_Employers_All_Day", param);
    DAL.Close();

}

和事件:

private void Frm_Daily_Come_Out_Load(object sender, EventArgs e)
{
    BL.Employers emp = new BL.Employers();
    dataGridView1.DataSource = emp.Get_Employers_All_Day(dateTimePicker1 .Value );
}

错误是:

无法将类型“void”隐式转换为“object”

【问题讨论】:

    标签: c# sql-server stored-procedures datagridview datetimepicker


    【解决方案1】:

    您的Get_Employers_All_Day() 方法的返回类型为void,这意味着它没有返回类型。

    修改它以返回您需要的数据。例如,如果您的DAL.ExecuteCommand() 返回DataTable,请将其修改为返回:

    public DataTable Get_Employers_All_Day(DateTime Date_Day)
    {
        ...
        ...
    
        DataTable result;
        try
        {
            result = DAL.ExecuteCommand("Get_Employers_All_Day", param);
        }
        finally
        {
            // Even if ExecuteCommand() fails, close any open connections
            DAL.Close();
        }
    
        return result;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 2011-02-13
      • 1970-01-01
      • 2016-06-14
      • 2011-07-12
      • 1970-01-01
      相关资源
      最近更新 更多