gpt4 book ai didi

c# - 为什么我的数据表没有任何结果进来?

转载 作者:太空宇宙 更新时间:2023-11-03 19:17:01 25 4
gpt4 key购买 nike

我对使用数据集、适配器、数据表等有点陌生...所以我认为这可以算是一个菜鸟问题。

我使用可视化设计器(扩展名为 .xsd 的文件)在 visual studio 中创建数据集。我在那里定义了一个名为“类(class)”的数据表。我使用 sql server 查询通过设计器填充了这个表,所以我知道我的数据连接是正确的。

在我的代码中,我正在测试如何实例化该 DataTable,然后将其中的列映射到我称为 Course.cs 的本地类。方法如下:

MyContext ctx = new MyContext();

SqlConnection conn =
new SqlConnection("Data Source=****;Initial Catalog=****;User ID=****;Password=****");
SqlCommand command = new SqlCommand(@"select * from stuff", conn);

SqlDataAdapter da = new SqlDataAdapter();
MyDataSet ds = new MyDataSet();
ds.Locale = CultureInfo.InvariantCulture;
da.Fill(ds);
DataTable courses = ds.Courses;

IEnumerable<DataRow> query =
from course in courses.AsEnumerable()
select course;
foreach (var course in query)
{
Course localCourse = new Course();
localCourse.CourseCode = course.Field<string>("CourseCode");
ctx.Courses.Add(localCourse);
}
ctx.SaveChanges();

我没有收到任何错误,它会正常运行代码,但由于“query”变量中没有任何内容,它不会生成我想要的新对象并映射值。

我在这里错过了什么?

编辑

感谢您的快速回复!当我添加代码行时:

da.Fill(ds);

它给了我这个异常(exception):

{"The SelectCommand property has not been initialized before calling 'Fill'."}

这让我感到困惑,因为我不想创建一个选择命令,尽管它已经在我的数据表中了?

编辑二

我已经按照建议做了,我需要做的是有道理的,但我仍然没有得到任何结果(尽管不再有错误......)。如果我对相同的连接字符串运行相同的查询,我可以获得结果,有什么想法吗?

编辑三个!

这是我用来填充数据表的原始且丑陋的查询。正如我所说,如果我在 SSMS 中执行,结果会很好。

select 
s.AdClassSchedId,
rtrim(s.code) +
CASE WHEN (isnull(s.section,'') <> '')
THEN '-S' + s.section
ELSE '' END as CourseCode,
s.descrip +
CASE WHEN (isnull(s.section,'') <> '')
THEN ' - Section ' + s.section
ELSE '' END as CourseName,
s.AdTeacherId,
s.StartDate,
s.EndDate,
s.DateLstMod as ClassSchedLastModified,
t.AdTermId
from adclasssched s
inner join adclassschedterm t on s.adclassschedid = t.adclassschedid
where s.active = 1

最佳答案

我没看到你在任何地方调用适配器上的填充?

那里的某处应该有一行代码,看起来像...

SqlDataAdapter da = new SqlDataAdapter("select * from courses", mySqlConnection);

da.Fill(ds);

此外,您需要将数据适配器的select命令设置为您打算从数据库运行的sql语句。

关于c# - 为什么我的数据表没有任何结果进来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15638569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com