我正在使用Dapper,我有这样的类:
public class Article{
public int Id { get; set; }
public string Description{get;set;}
public Group Group { get; set; }
public List<Barcode> Barcode {get;set;}
...
}
public class Group{
public int Id { get; set; }
public string Description {get;set;}
}
public class Barcode{
public int Id { get; set; }
public string Code{get;set;}
public int IdArticle { get; set; }
...
}
Run Code Online (Sandbox Code Playgroud)
我可以获得有关文章的所有信息,但我想知道是否可以使用一个查询获取每篇文章的条形码列表.其实我做的是这样的:
string query = "SELECT * FROM Article a " +
"LEFT JOIN Groups g ON …
Run Code Online (Sandbox Code Playgroud) 我有这张桌子:
我在项目中使用了称为NewItem的视图,在此视图中有两个组合框。
我想这样做:在组合框组中有表GROUP的所有Description,当我选择(第一个组合框)此描述的项目时,第二个组合框填充的描述仅与我之前选择的描述有关。
这是一些代码:
XAML NewItemView:
<ComboBox Height="21" HorizontalAlignment="Left" Margin="89,99,0,0"
VerticalAlignment="Top" Width="106" x:Name="Group" SelectedItem="{Binding SelectedGroup}" />
Run Code Online (Sandbox Code Playgroud)
ViewModel代码类似于:
[Export(typeof(IScreen))]
public class NewItemViewModel : Screen
{
public string SelectedGroup { get; set; }
public String[] Group { get { return Groups; } }
[..]
//Constructor
public NewArticleViewModel()
{
Groups = GetGroups();
}
//Method
private string[] GetGroups()
{
OleDbConnection conn = new OleDbConnection(StringConn);
List<Group> groups = new List<Group>();
conn.Open();
groups = conn.Query<Group>(Q_SELECT_GROUPS,null,null).ToList();
conn.Close();
string[] array = new string[groups.Count];
for (int i = 0; …
Run Code Online (Sandbox Code Playgroud) 我的数据库中有两个表,如下所示:
我有这个课:
class Ean
{
public string Code{ get; set; }
}
class Article
{
public int Id { get; set; }
public string Name { get; set; }
public List<Ean> BarCode { get; set; }
}
List<Article> arts = new List<Article>();
Run Code Online (Sandbox Code Playgroud)
我创建文章列表,并使用dapper进行查询。我想用文章的名称来填充此列表,还要用相关ean文章的列表来填充。我尝试执行以下查询:
SELECT ART.ID AS ID, ART.NAME AS NAME,EAN.EAN AS BARCODE
FROM ART,EAN
WHERE ART.ID = EAN.ID_ART;
Run Code Online (Sandbox Code Playgroud)
并在C#中。
arts = conn.Query<Article>(query, null, transaction).ToList();
Run Code Online (Sandbox Code Playgroud)
但是不行 我该怎么办?谢谢。欢迎任何建议。
我在第一个(MainView)中有2个视图我选择一个文件并导入它,在第二个视图(BView)中显示数据网格中该文件的详细信息.
这是第一个视图(MainView):
这是第二个视图(BView):
我希望当我单击"导入"时出现在进度条和文本上,而第二个视图加载时.我想在另一个TASK中打开另一个视图,但是我收到此错误消息:
"调用线程无法访问此对象,因为另一个线程拥有它."
这是MainViewModel的代码是:
[Export(typeof(IShell))]
public class MainViewModel : Screen
{
public string Path{ get; set; }
public bool IsBusy { get; set; }
public string Text { get; set; }
[Import]
IWindowManager WindowManager { get; set; }
public MainViewModel()
{
IsBusy = false;
Text = "";
}
public void Open()
{
OpenFileDialog fd = new OpenFileDialog();
fd.Filter = "Text|*.txt|All|*.*";
fd.FilterIndex = 1;
fd.ShowDialog();
Path= fd.FileName;
NotifyOfPropertyChange("Path");
}
public void Import()
{
if (Percorso != null)
{
IsBusy …
Run Code Online (Sandbox Code Playgroud) 我无法理解为什么它不起作用..
这是我的班级
public class Article : Screen
{
public string Code { get; set; }
public string Description{ get; set; }
public decimal Cost{ get; set; }
public decimal Price{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是DataGrid的XAML代码:
<DataGrid Height="211" HorizontalAlignment="Left"
Margin="12,31,0,0" VerticalAlignment="Top" Width="521"
AutoGenerateColumns="False" ItemsSource="{Binding List}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=Code}" Header="Code" />
<DataGridTextColumn Binding="{Binding Path=Description}" Header="Description" />
<DataGridTextColumn Binding="{Binding Path=Cost}" Header="Cost" />
<DataGridTextColumn Binding="{Binding Path=Price}" Header="Price" />
</DataGrid.Columns>
</DataGrid>
<Button Content="Button" Height="39" HorizontalAlignment="Left"
Margin="223,262,0,0" VerticalAlignment="Top" Width="110"
x:Name="AllArticles"/>
Run Code Online (Sandbox Code Playgroud)
这是我的观点模型
[Export(typeof(IShell))]
public class ArtsViewModel …
Run Code Online (Sandbox Code Playgroud)