我正在拍一个wpf申请。主窗口的样子:http://www54.zippyshare.com/v/91622733/file.html如何在主窗口中显示数据库中新插入的记录?
主窗口代码:
namespace WpfApplication25
{
/// <summary> <br>
/// Interaction logic for MainWindow.xaml <br>
/// </summary> <br>
public partial class MainWindow : Window <br>
{
int count = 120;
System.Windows.Threading.DispatcherTimer tmr = new System.Windows.Threading.DispatcherTimer();
public MainWindow()
{
InitializeComponent();
tmr.Interval = new TimeSpan(0, 0, 1);
tmr.Tick += new EventHandler(tmr_Tick);
DataTable aukcijeTable = new DataTable();
SqlConnection conn = new SqlConnection(@"data source=(local);database=Aukcija;integrated security=true;");
SqlDataAdapter aukcDa = new SqlDataAdapter("select * from auctions", conn);
aukcDa.Fill(aukcijeTable);
aukcija_bazeDataGrid.DataContext = aukcijeTable;
}
void tmr_Tick(object sender, EventArgs e)
{
label1.Content = count -= 1;
if (count == 0)
{
System.Windows.Forms.MessageBox.Show("Auction completed");
tmr.Stop();
count = 120;
}
else
{
}
}
private void button1_Click(object sender, RoutedEventArgs e)
{
Form1 popup = new Form1();
popup.ShowDialog();
popup.Dispose();
}
private void button3_Click(object sender, RoutedEventArgs e)
{
Form2 popup = new Form2();
popup.ShowDialog();
popup.Dispose();
}
private void button2_Click(object sender, RoutedEventArgs e)
{
tmr.Start();
using (SqlConnection conn = new SqlConnection(@"data source=(local);database=Aukcija;integrated security=true;"))
{
DataTable cena1 = new DataTable();
conn.Open();
SqlDataAdapter DA = new SqlDataAdapter(" UPDATE auctions SET current_price = current_price + 1", conn);
SqlCommand cmd = new SqlCommand ("UPDATE auctions SET current_price = current_price + 1", conn);
DA.Fill(cena1);
//DA.Update(cena1);
cmd.ExecuteNonQuery();
SqlCommandBuilder cb = new SqlCommandBuilder(DA); //novo
DA.Update(cena1); //novo
conn.Close();
}
}
private void aukcija_bazeDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
}
private void button4_Click(object sender, RoutedEventArgs e)
{
tmr.Start();
}
private void button5_Click(object sender, RoutedEventArgs e)
{
tmr.Stop();
System.Windows.Forms.MessageBox.Show("Auction completed!");
count = 120;
}
}
}
而且,我做了一个新的形式增加新的拍卖,它看起来像这样: http://www8.zippyshare.com/v/35519167/file.html。
代码为新的形式:
namespace WpfApplication25 {
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
using (SqlConnection connection = new SqlConnection(
@"data source=(local);
database=Aukcija;
integrated security=true;"))
{
DataTable aukcijeTable = new DataTable(); //novo
SqlCommand cmd = new SqlCommand("INSERT INTO Auctions (item_name, start_price, current_price) VALUES (@item_name, @start_price, @current_price)");
cmd.CommandType = CommandType.Text;
cmd.Connection = connection;
connection.Open();
cmd.Parameters.AddWithValue("@item_name", textBox1.Text);
cmd.Parameters.AddWithValue("@start_price", textBox2.Text);
cmd.Parameters.AddWithValue("@current_price", textBox3.Text);
cmd.ExecuteNonQuery();
connection.Close();
}
}
}}
当我点击button1_Click
它打开了我一个新的形式和我有新的拍卖信息填充它,当我点击确定没有任何反应。我必须关闭我的应用程序并再次打开它,以显示我从DataBase中新插入的记录。
我在代码中缺少什么? 我需要点东西刷新(更新)主窗口,当我按下确定...
这就是说,我不知道更新逻辑的代码... –
@МаркоЛучић看看我的编辑;) –
代码的一部分:if(updateForm.ShowDialog .. ... “updateForm”是什么意思?就是我的Form2? –