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;
}
我再次道歉,如果这是马虎或做错了,但我仍在学习。任何帮助,为什么我的表显示与空单元格将非常感激。
你已经将itemsource设置为tblCart,所以当你在xaml绑定中输入这个时,它实际上是在寻找tblCart.tblCart. title(显然不存在)
下面的代码应该可以解决这个问题(假设您的集合确实包含数据)
<DataGridTextColumn Header="Title" Width="250" Binding="{Binding Title}"/>
<DataGridTextColumn Header="Price" Width="57" Binding="{Binding Price}"/>