在monthCalender中选择日期时,从字符串转换datetime时转换失败。 [英] Conversion failed when converting datetime from character string when selecting date in monthCalender.

查看:40
本文介绍了在monthCalender中选择日期时,从字符串转换datetime时转换失败。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我在monthcalender控件中选择日期时,我在运行时收到错误。它抛出错误说

I' m getting an error at runtime when i select a date in monthcalender control. It throws an error saying

Quote:

从字符串转换datetime时转换失败。

Conversion failed when converting datetime from character string.

。我在SQL Server 2005中将Date指定为

. I have assigned Date as

Quote:

nvarchar(255)

nvarchar(255)





下面是C#ADO.NET中Win Form的代码:



in SQL Server 2005.

Below is the code of Win Form in C# ADO.NET:

public partial class Search : Form
    {
        SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=123;database=Externetworks Interviews");
        DataSet ds = new DataSet();
        public Search()
        {
            InitializeComponent();
            
        }

        private void Search_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'externetworks_InterviewsDataSet1.Interviews' table. You can move, or remove it, as needed.
            this.interviewsTableAdapter1.Fill(this.externetworks_InterviewsDataSet1.Interviews);
            // TODO: This line of code loads data into the 'externetworks_InterviewsDataSet.Interviews' table. You can move, or remove it, as needed.
            //this.interviewsTableAdapter.Fill(this.externetworks_InterviewsDataSet.Interviews);
           
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("Please Enter Order no", "ERROR");
                textBox1.Focus();
            }
            else
            {
                SqlCommand cmd = new SqlCommand("Select * from Interviews where orderno= " + int.Parse(textBox1.Text), con);
                SqlDataAdapter da = new SqlDataAdapter();
                da.SelectCommand = cmd;
                da.Fill(ds,"Interviews" );
                dataGridView1.Show();
                dataGridView1.DataSource = ds.Tables["Interviews"];
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            SqlCommand cmd = new SqlCommand("Select * from Interview", con);
            dataGridView1.Show();
        }

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            Interviews obj = new Interviews();
            obj.Show();
            this.Hide();
        }

        private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
        {
            
                DataTable dt = new DataTable();
                DateTime mdate = monthCalendar1.SelectionRange.Start.Date;
                DateTime start = monthCalendar1.SelectionStart;
                DateTime end = monthCalendar1.SelectionEnd;
                SqlCommand cmd = new SqlCommand("select * from Interviews where intvwdate=@intvwdate", con);

                cmd.Parameters.AddWithValue("@intvwdate", Convert.ToDateTime(monthCalendar1.SelectionStart));
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(ds, "Interviews");
                dataGridView1.Show();
                dataGridView1.DataSource = ds.Tables["Interviews"];
            

        }

        private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            Login obj = new Login();
            obj.Show();
            this.Hide();
        }
        
    }
}

推荐答案

好像你有某种数据格式错配。如果声明类型 nvarchar(255)的列,它在某种程度上等同于 string 类型,则使用的值在SELECT的WHERE子句中也必须是该类型。它可能更好地重新定义列类型为 DateTime 以便能够使用此构造:

It seems like you have some kind of data format missmatch. If you declare your column of type nvarchar(255), which is somehow equivalent to the string type, the value used in the SELECT's WHERE clause must also be of that type. It could probably be better redefining the column type as DateTime to be able to use this construct:
cmd.Parameters.AddWithValue("@intvwdate", Convert.ToDateTime(monthCalendar1.SelectionStart));


这篇关于在monthCalender中选择日期时,从字符串转换datetime时转换失败。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆