在C#和WPF中显示DateTime

本文关键字:显示 DateTime WPF | 更新日期: 2023-09-27 18:29:26

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

 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(); 
    }

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

在C#和WPF中显示DateTime

您需要在代码中查看/考虑以下几点,首先是您的问题。这行代码:

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

不会实现你想要的,因为你没有执行代码。实际上,您正在尝试将命令对象转换为日期时间。

在方法的早期,您正在向数据库进行写入,其中一部分您调用以下内容:

cmd.ExecuteNonQuery();

在命令对象上还有各种其他方法,它们都以不同的方式工作。要了解有关它们的信息,请访问此MSDN页面,但本质上,您可能想使用ExecuteScalar方法来完成您要做的事情。

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

最后,我将为您的每个Connection使用一个using语句,以便确保它们得到正确处理。

只是一些额外的思考食物。