所以我一直在研究这个数据网格的东西并遇到了另一个问题。所以,我在一个文本框上有这个 textchanged 事件,它接受条形码扫描仪输入并将该 UML 编号与电影表 (tblMovies) 匹配。它获取该行并将其插入到购物车表 (tblCart) 中。发生这种情况时,我试图在 wpf 窗口中使用数据网格,在使用 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;
}
如果马虎或做错了,我再次道歉,但我仍在学习。对于为什么我的表格显示为空单元格的任何帮助将不胜感激。