我正在拍一個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? –