Datagrid正在使用c#和sql server 2008显示没有内容的行

本文关键字:显示 2008 server sql Datagrid | 更新日期: 2023-09-27 18:11:02

所以我一直在研究这个数据网格的东西,然后遇到了另一个问题。因此,我在一个文本框上设置了这个textchanged事件,该文本框接受条形码扫描器输入,并将UML编号与电影表(tblMovies)相匹配。它获取该行并将其插入购物车表(tblCart)。当这种情况发生时,我试图在一个wpf窗口中有一个数据网格,在visual studio中使用c#,在它接收到新的输入时填充tblCart。所以我的问题是,我有它会显示一个空行,在单元格中没有任何东西。有人知道为什么吗?

这是我在XAML中的数据网格:

<DataGrid Name="dg1" AutoGenerateColumns="False" Height="323" HorizontalAlignment="Left" Margin="26,25,0,0" VerticalAlignment="Top" Width="332" >
        <DataGrid.Columns>
            <DataGridTextColumn Header="Title" Width="250" Binding="{Binding tblCart.Title}"/>
            <DataGridTextColumn Header="Price" Width="57" Binding="{Binding tblCart.Price}"/>
        </DataGrid.Columns>
    </DataGrid>

这是我在。cs中启动的数据网格:

public partial class SalesScreen : Window
{
    DataSet ds = new DataSet();
    SqlConnection cn = new SqlConnection("Data Source=******;Initial Catalog=*****;User ID=**; Password=**********");
    SqlDataAdapter da;
    DataTable dt;
    public SalesScreen()
    {
        InitializeComponent();
        cn.Open();
        String cmdString = "Select Title, Price from tblCart";
        SqlCommand cmd = new SqlCommand(cmdString, cn);
        da = new SqlDataAdapter(cmd);
        dt = new DataTable("tblCart");
        da.Fill(dt);
        dg1.ItemsSource = dt.DefaultView;
    }

这是textchanged方法:

        private void TBox_TextChanged(object sender, TextChangedEventArgs e)
    {
        String cmdString = "INSERT INTO tblCart(Title, GenreID, Price, Year, UML, Quantity) Select Title, GenreID, Price, Year, UML, Quantity FROM tblMovies WHERE UML = '" + BarcodeReader.Text + "'";
        SqlCommand cmd = new SqlCommand(cmdString, cn);
        da = new SqlDataAdapter(cmd);
        dt = new DataTable("tblCart");
        da.Fill(dt);
        dg1.ItemsSource = dt.DefaultView;
    }
我再次道歉,如果这是马虎或做错了,但我仍在学习。任何帮助,为什么我的表显示与空单元格将非常感激。

Datagrid正在使用c#和sql server 2008显示没有内容的行

你已经将itemsource设置为tblCart,所以当你在xaml绑定中输入这个时,它实际上是在寻找tblCart.tblCart. title(显然不存在)

下面的代码应该可以解决这个问题(假设您的集合确实包含数据)

 <DataGridTextColumn Header="Title" Width="250" Binding="{Binding Title}"/>
 <DataGridTextColumn Header="Price" Width="57" Binding="{Binding Price}"/>