这个程序是关于连接两个不同的数据源中表的复制。但调试的时候有一行出现问题。
代码如下:        private void Form1_Load(object sender, EventArgs e)
        {
            SqlConnection conn1 = new SqlConnection();
            SqlConnection conn2 = new SqlConnection();
            SqlCommand cmd1 = new SqlCommand();
            SqlCommand cmd2 = new SqlCommand();
            SqlDataReader dr;
            conn1.ConnectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=History;User ID=sa;Pwd=sa";
            conn2.ConnectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=History2;User ID=sa;Pwd=sa";
            cmd1.Connection = conn1;
            cmd2.Connection = conn2;
            cmd1.CommandText = "SELECT GroupName,State,Point,Time FROM OnOff";
            conn1.Open();
            dr = cmd1.ExecuteReader();
            conn2.Open();
            while (dr.Read())
            {
                string insertString = "INSERT INTO OnOff3( GroupName, State,Point,Time) VALUES ('{0}','{1}','{2}','{3}')"; 
                //问题就在这,最后一个参数提示【无法将类型为“System.DateTime”的对象强制转换为类型“System.String”。】
                insertString = string.Format(insertString, dr.GetString(0), dr.GetString(1), dr.GetString(2),dr.GetString(3).ToString());                cmd2.CommandText = insertString;
                cmd2.ExecuteNonQuery();
            }
            dr.Close();
            conn1.Close();
            conn2.Close();
            MessageBox.Show("Inserted Done!"); 
        }PS:GroupName, State,Point这三个字段在数据库中都为nchar(10)类型,字段Time在数据库中为datetime类型。希望高手指点下问题出在哪,最好能写出代码。
感激不尽!!

解决方案 »

  1.   

    字段Time在数据库中为datetime类型dr.GetString(3).ToString()
      

  2.   

    dr.GetString(3).ToString()=>dr.GetDateTime(3).ToString("yyyy-MM-dd hh:mm:ss")
      

  3.   


    这个就是错误原因,字段Time在数据库中为datetime类型,但你是用 GetString 取值的,所以报错
      

  4.   

    试一下是否是
    dr.GetString(3).ToString();这里出问题了
      

  5.   

    知道了  换成dr.GetDateTime(3)就可以了 谢谢!