我在第一个窗口中选择了一个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();
}
错误是输入字符串格式不正确。我该如何转换它?
答案 0 :(得分:0)
您需要在代码中查看/考虑一些事项,首先是您的问题。 这行代码:
int query= Convert.ToDateTime(comm.CommandText = "select MAX(DateTime) from [Events]");
由于您没有执行代码,因此无法实现您的目标。您实际上是在尝试将命令对象转换为日期时间。
在您的方法的早期,您正在写入数据库,部分内容是您调用以下内容:
cmd.ExecuteNonQuery();
您在命令对象上有各种其他方法,它们都以不同的方式工作。要阅读它们,请访问此MSDN page,但基本上您可能希望将ExectuteScalar方法用于您要执行的操作。
接下来,我会考虑将您的连接字符串移动到app.config文件并从那里访问它,而不是多次输入它。
最后,我会为每个Connection使用一个using语句,以确保它们被正确处理掉。
只是需要一些额外的食物。