私は次のフォームを持っています:
ボタンをクリックすると、このように機能し、上記のすべてのパラメーターがGetData
メソッドに渡されます
protected void btnShow_Click(object Sender, EventArgs e)
{
ShowReport();
}
private void ShowReport()
{
//Reset
ReportViewer1.Reset();
//DataSource
DataTable dt = GetData(type.Text, category.Text,subsidary.Text,country.Text, DateTime.Parse(date.Text));
............................
}
これはGetData
メソッドです
private DataTable GetData(string type, string category, string country, string subsidary, string dateHERE)
{
// date = date.Value.ToOADate();
DateTime? mydate = null;
DateTime date2;
bool check = DateTime.TryParse(dateHERE, out date2);
if (check)
{
mydate = date2;
}
DataTable dt = new DataTable();
string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["AB_ReportEntities"].ConnectionString;
using (SqlConnection cn = new SqlConnection(connStr))
{
SqlCommand cmd = new SqlCommand("FindIncomplete_Products", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@type", SqlDbType.NVarChar).Value = type;
cmd.Parameters.Add("@category", SqlDbType.NVarChar).Value = category;
cmd.Parameters.Add("@country", SqlDbType.NVarChar).Value = country;
cmd.Parameters.Add("@subsidary", SqlDbType.NVarChar).Value = subsidary;
cmd.Parameters.Add("@date", SqlDbType.Date).Value = mydate;
SqlDataAdapter adp = new SqlDataAdapter(cmd);
adp.Fill(dt);
}
return dt;
}
上記のフォームで日付フィールドに null 値がある場合、結果を取得できません。次のエラーが表示されます。
System.FormatException: 文字列は有効な DateTime として認識されませんでした。