在C#和WPF中显示DateTime

时间:2016-01-08 09:52:22

标签: c# wpf

我在第一个窗口中选择了一个DateTime变量,我试图在第二个窗口中显示。它应该连接到DB,但它显示来自DB的随机数据,而不是选定的数据。 这是代码:

 public partial class MainWindow : Window
{

    public MainWindow()
    {
        InitializeComponent();
    }


    private void Button_Click(object sender, RoutedEventArgs e)
    {
        MessageBox.Show("Are you sure?");
        Window1 win1 = new Window1();
        win1.Show();


    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        {
            string connectionString = null;
            SqlConnection cnn;
            connectionString =
                @"Data Source=IBWS05\MSSQLSERVER2012;Initial Catalog=Interview;Integrated Security=True";

            try
            {

                SqlConnection con =
                    new SqlConnection(
                        @"Data Source=IBWS05\MSSQLSERVER2012;Initial Catalog=Interview;Integrated Security=True");
                SqlCommand cmd = new SqlCommand();
                con.Open();
                cmd.Connection = con;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText =
                    "insert into [Event] (Description,StartData,EndData,Type) values (@description,@startdata,@endata,@type)";

                cmd.Parameters.AddWithValue("description", descriptionTxt.Text);
                cmd.Parameters.AddWithValue("startData", StartDate.Value);
                cmd.Parameters.AddWithValue("endata", EndDate.Value);
                cmd.Parameters.AddWithValue("type", typeTxt.Text);
                cmd.ExecuteNonQuery();
                con.Close();
                MessageBox.Show("Data Saved");

            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }


        ////Window2 win = new Window2(id);
        //Window2 win3 = new Window2();
        //this.Close();
        //win3.Show();

        SqlConnection conn =
                    new SqlConnection(
                        @"Data Source=IBWS05\MSSQLSERVER2012;Initial Catalog=Interview;Integrated Security=True");
        SqlCommand comm = new SqlCommand();
        comm.Connection = conn;
        comm.CommandType = CommandType.Text;

        int query= Convert.ToInt32(comm.CommandText = "select MAX(StartData) from [Events]");



        Window2 win = new Window2(query);
        win.Show(); 
    }

错误是输入字符串格式不正确。我该如何转换它?

1 个答案:

答案 0 :(得分:0)

您需要在代码中查看/考虑一些事项,首先是您的问题。 这行代码:

int query= Convert.ToDateTime(comm.CommandText = "select MAX(DateTime) from [Events]");

由于您没有执行代码,因此无法实现您的目标。您实际上是在尝试将命令对象转换为日期时间。

在您的方法的早期,您正在写入数据库,部分内容是您调用以下内容:

  

cmd.ExecuteNonQuery();

您在命令对象上有各种其他方法,它们都以不同的方式工作。要阅读它们,请访问此MSDN page,但基本上您可能希望将ExectuteScalar方法用于您要执行的操作。

接下来,我会考虑将您的连接字符串移动到app.config文件并从那里访问它,而不是多次输入它。

最后,我会为每个Connection使用一个using语句,以确保它们被正确处理掉。

只是需要一些额外的食物。