C# 用于选择两个整数列的linq查询
我为表中的select两列添加了以下代码。但返回模块是下划线的。请帮帮我C# 用于选择两个整数列的linq查询,c#,gmail,C#,Gmail,我为表中的select两列添加了以下代码。但返回模块是下划线的。请帮帮我 public List<module_details> GetModuleDetails(int modId) { var module = (from a in connection.module_details where a.module_id == modId select new
public List<module_details> GetModuleDetails(int modId)
{
var module = (from a in connection.module_details
where a.module_id == modId
select new
{
id = a.module_id,
marks = a.module_marks
}
).ToList();
return module;
}
public List GetModuleDetails(int modId)
{
var module=(来自连接中的a.module\u详细信息
其中a.module_id==modId
选择新的
{
id=a.module_id,
标记=a.模块标记
}
).ToList();
返回模块;
}
您的模块
变量是一个匿名类型列表,具有两个属性id
和标记
。这就是您用new{..}
声明的内容
这不能作为模块\u详细信息的列表返回,因为就编译器而言,这些是完全不同的类型。您需要选择模块详细信息的新实例:
var module = (from a in connection.module_details
where a.module_id == modId
select new module_details
{
id = a.module_id,
marks = a.module_marks
}
).ToList();
此代码示例假定module_details类具有这些属性,并且它们是可公共设置的。很可能命名错误,或者您需要调用模块\u详细信息
上的(非默认)构造函数来执行此操作-取决于模块\u详细信息
的定义
另一方面,如果您不想返回模块\u详细信息
,则需要相应地更改方法签名。仅返回两列的最简单方法可能是创建一个类来保存数据,并将数据作为该类的集合返回,例如
//类型可能不正确,不确定原始类型是什么
公共类模块_子集{public int id;public int marks;}
//选择模块_子集列表中的两列
公共IList GetModuleDetails(int modId)
{
var module=(来自连接中的a.module\u详细信息
其中a.module_id==modId
选择新模块\u子集
{
id=a.module_id,
标记=a.模块标记
}).ToList();
返回模块;
}
您想返回什么?只有两个字段有效,其余字段无效的模块\u详细信息列表,或者只有两个字段组成的新类?我想返回仅包含“选择模块\u id”和“模块标记”列的查询。尊敬的Joachim,我添加以下代码来显示查询详细信息。但它不起作用。dataGridView1.DataSource=(logic.GetModuleDetails(int.Parse(textBox1.Text))@LakshihaGihan到底是什么不起作用?错误的结果?错误。。。?数据未显示到dataGridView1