首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wpf转让-拍卖

Wpf转让-拍卖
EN

Stack Overflow用户
提问于 2014-03-12 09:48:38
回答 1查看 2.2K关注 0票数 1

有人能帮我完成学校作业吗。我完全是初学者,有很多事情我不明白。我现在要去学校学习编程,但是它对我来说非常缓慢,教授给我们布置了作业,但不幸的是,我不知道如何解决它。有人能帮我吗?请。

任务如下:

“拍卖”

创建用于拍卖的WPF应用程序,其内容如下:

-application包括通过数据库实现的用户管理系统。它必须至少有两个用户(管理员和普通用户)。

-Auctions从数据库中获取数据

-in主要的拍卖窗口,它展示的是所有目前正在拍卖的产品。对于每一个产品,它显示了价格,最后报价和最后投标人的数据。

没有登录的-User有权观看所有关于拍卖的内容,但无权出价。

-normal用户只有权竞价

-administrator有权输入新产品并删除现有产品。所有的东西,当新的产品是输入时,它必须把他的起始价格,名称和其他信息。

拍卖应如何运作:

当产品进入的那一刻,该产品的拍卖就开始了,倒计时也开始了。每次拍卖都有2分钟的时间来完成。只要用户出价,拍卖的时间就会重新开始,并获得额外的2分钟。当用户对产品进行投标时,产品的价格每增加一美元。当拍卖结束时,最后一个出价的用户被标记为赢家,拍卖结束,其他用户停止使用它。

我已经尝试创建一些我的代码,但我得到了不同的错误。

一些错误信息,但还有更多:'AukcijskaProdaja.MainWindow‘不包含'button1_Click’的定义,并且也找不到接受‘AukcijskaProdaja.MainWindow’类型的第一个参数的扩展方法'AukcijaDataSet‘(您是缺少一个使用指令还是程序集引用?);当前上下文c中不存在名称'conn’:\user\denis\AukcijaDataSet\visual studio;命名空间‘AukcijaDataSet’在名称空间'AukcijskaProdaja‘中不存在(您缺少程序集引用吗?)

xaml:

代码语言:javascript
复制
Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
    <my:AukcijaDataSet x:Key="aukcijaDataSet" />
  <CollectionViewSource x:Key="aukcija_bazeViewSource" Source="{Binding        Path=Aukcija_baze, Source={StaticResource aukcijaDataSet}}" />
  <Grid>
    <DataGrid AutoGenerateColumns="False" EnableRowVirtualization="True" Height="136"   HorizontalAlignment="Left" ItemsSource="{Binding}" Margin="78,22,0,0" Name="aukcija_bazeDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Width="391">
        <DataGrid.Columns>
            <DataGridTextColumn x:Name="aukcijaIdColumn" Binding="{Binding Path=AukcijaId}" Header="Aukcija Id" Width="SizeToHeader" />
            <DataGridTextColumn x:Name="artikalNameColumn" Binding="{Binding Path=ArtikalName}" Header="Artikal Name" Width="SizeToHeader" />
            <DataGridTextColumn x:Name="cijenaColumn" Binding="{Binding Path=Cijena}" Header="Cijena" Width="SizeToHeader" />
        </DataGrid.Columns>
    </DataGrid>
    <Label Content="AukcijaId" Height="23" HorizontalAlignment="Left" Margin="69,268,0,0" Name="label1" VerticalAlignment="Top" Width="83" />
    <Label Content="ArtikalName" Height="24" HorizontalAlignment="Left" Margin="154,267,0,0" Name="label2" VerticalAlignment="Top" Width="68" />
    <TextBox Height="23" HorizontalAlignment="Left" Margin="69,240,0,0" Name="AukcijaId" VerticalAlignment="Top" Width="63" DataContext="{Binding Path=aukcijaIdColumn}" />
    <TextBox Height="23" HorizontalAlignment="Left" Margin="154,240,0,0" Name="ArtikalName" VerticalAlignment="Top" Width="68" DataContext="{Binding Path=artikalNameColumn}"/>
    <Button Content="Ponuda" Height="26" HorizontalAlignment="Left" Margin="242,240,0,0" Name="button1" VerticalAlignment="Top" Width="68" Click="button1_Click" />
    <Label Content="Vrijeme" HorizontalAlignment="Left" Margin="378,240,0,148" Name="label4" Width="81" />
    <Label Content="Unesi ponudu" Height="28" HorizontalAlignment="Left" Margin="69,206,0,0" Name="label5" VerticalAlignment="Top" Width="83" />
    <ListBox Height="38" HorizontalAlignment="Left" Margin="78,153,0,0" Name="listBox1" VerticalAlignment="Top" Width="391" />
</Grid>

C#:

代码语言:javascript
复制
namespace AukcijskaProdaja
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        AukcijskaProdaja.AukcijaDataSet aukcijaDataSet = ((AukcijskaProdaja.AukcijaDataSet)(this.FindResource("aukcijaDataSet")));
        // Load data into the table Aukcija_baze. You can modify this code as needed.
        AukcijskaProdaja.AukcijaDataSetTableAdapters.Aukcija_bazeTableAdapter aukcijaDataSetAukcija_bazeTableAdapter = new AukcijskaProdaja.AukcijaDataSetTableAdapters.Aukcija_bazeTableAdapter();
        aukcijaDataSetAukcija_bazeTableAdapter.Fill(aukcijaDataSet.Aukcija_baze);
        System.Windows.Data.CollectionViewSource aukcija_bazeViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("aukcija_bazeViewSource")));
        aukcija_bazeViewSource.View.MoveCurrentToFirst();
    }

    public void BindMyData()
    {
        try
    {
        conn.Open();
        SqlCommand comm = new SqlCommand("SELECT * FROM Aukcija_baze", conn);
        DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter(comm);
        da.Fill(ds);
        aukcija_bazeDataGrid.ItemsSource = ds.Tables[0].DefaultView;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message.ToString());
    }
    finally
    {
        conn.Close();
    }

    BindMyData();
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            conn.Open();
            SqlCommand comm = new SqlCommand("INSERT INTO Aukcija_baze VALUES(" + AukcijaId.Text + ",'" + ArtikalName.Text + "',", conn);
            comm.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message.ToString());
        }
        finally
        {
            conn.Close();
            BindMyData();
        }

        {
            DispatcherTimer dispatcherTimer = new DispatcherTimer();
            dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
            dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
            dispatcherTimer.Start();

        }

    }
    private void dispatcherTimer_Tick(object sender, EventArgs e)
    {

    }
}

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-12 16:46:12

您似乎没有包含所有代码,但我将指出我看到的错误:

  1. 在"BindMyData“和单击处理程序中,使用"conn”变量。此变量从未声明过。一般来说,SqlConnections应该是短暂的,所以它可能应该在使用它的每个函数中声明,而不是在类级别上声明。无论如何,您需要在这些函数可以看到它的某个作用域声明它。
  2. 在Window_Loaded中,有一个类型为AukcijaDataSet的变量,它没有发布任何代码。考虑到我不认为您打算重写数据集类,这个(和其他类似的行,比如AukcijaDataSetTableAdapters)应该使用标准的.NET名称(比如DataSet)。如果确实打算重写这些类,请确保在外部库中有名称空间的using语句和项目中的引用。
  3. 您正在设置文本框的"DataContext“属性,并将DataGrid绑定到整个窗口数据上下文。假设您的CollectionViewSource绑定有效(我对此非常怀疑,您需要一个适当的视图模型),那么您可以使用静态资源绑定。文本框的文本属性应该绑定到视图模型的属性,而不是数据上下文集。

您的列绑定乍一看看起来还不错,而且总体上您肯定是在正确的轨道上。不过,它确实需要大量的清理,适当的MVVM设置将有所帮助。

你也应该尝试谷歌的错误,正如评论指出的。每当您看到“无法找到”或“不存在”类型错误时,这意味着您丢失了一个解密(在变量的情况下)或一个缺失的类定义或引用(如果它位于类型名称上)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22347568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档