怎样把数据库中一个表的某一列转换为字符串数组?

时间:2021-12-14 13:51:41
如下是我的代码,运行之后字符串数组仍然是空的,请高手指教

              int i = 0;
              foreach (DataRow row in dataTable.Rows)
                {
                    if (row["学院"] != null)
                    {
                        i++;
                        aca[i] = row["学院"].ToString();
                    }
                }

12 个解决方案

#1


断点调试 ,dataTable中有数据么?

aca是什么类型?

#2


row["学院"].ToString().ToCharArray();

#3


引用 2 楼 wuyq11 的回复:
row["学院"].ToString().ToCharArray();

没写过这样的 楼主试下看行不 行的话给个答复 
我以后要收碰到类似的 就好办啦  呵呵

#4


引用楼主 dim_hunter 的回复:
如下是我的代码,运行之后字 符串数组仍然是空的,请高手指教

C# code

              int i = 0;
              foreach (DataRow row in dataTable.Rows)
                {
                    if (row["学院"] != null)
             ……

 

#5


引用 3 楼 sibiyellow 的回复:
引用 2 楼 wuyq11 的回复:
row["学院"].ToString().ToCharArray();

没写过这样的 楼主试下看行不 行的话给个答复 
我以后要收碰到类似的 就好办啦 呵呵

不行的吧,LZ的字符串数组
row["学院"].ToString().ToCharArray() 这个返回的是char数组

#6


引用 1 楼 peter200694013 的回复:
断点调试 ,dataTable中有数据么?

aca是什么类型?

刚才调试发现了,aca里面是有数据的,aca是string[]类型的

我做这个主要是想在combox中调用数据库,用comboBox1.Items.AddRange(aca),最后发现是因为aca中有null值,所以会报错,囧。。

#7


很晕

你断点debug看看,说不定根本就不会进你的if

#8


现在解决了?
恭喜...

如果程序运行出错,先想想哪里可能出错,然后去试着调试...

#9


多谢多谢,我开始调试的思路错了,以为我的方法有问题,没忘别的方面想。。。

#10


引用 6 楼 dim_hunter 的回复:
引用 1 楼 peter200694013 的回复:

断点调试 ,dataTable中有数据么?

aca是什么类型?

刚才调试发现了,aca里面是有数据的,aca是string[]类型的

我做这个主要是想在combox中调用数据库,用comboBox1.Items.AddRange(aca),最后发现是因为aca中有null值,所以会报错,囧。。


你的是String[],声明时大小固定了,所以赋值之后可能有Null
建议使用List<String>,
List<String> aca = new List<String>();

aca.Add(row["学院"].ToString());

#11


要么你的循环没有被执行,要么你的数据表没有数据。

#12


引用 10 楼 peter200694013 的回复:
引用 6 楼 dim_hunter 的回复:
引用 1 楼 peter200694013 的回复:

断点调试 ,dataTable中有数据么?

aca是什么类型?

刚才调试发现了,aca里面是有数据的,aca是string[]类型的

我做这个主要是想在combox中调用数据库,用comboBox1.Items.AddRange(aca),最后发现是因为aca中有null……

多谢指点。。

#1


断点调试 ,dataTable中有数据么?

aca是什么类型?

#2


row["学院"].ToString().ToCharArray();

#3


引用 2 楼 wuyq11 的回复:
row["学院"].ToString().ToCharArray();

没写过这样的 楼主试下看行不 行的话给个答复 
我以后要收碰到类似的 就好办啦  呵呵

#4


引用楼主 dim_hunter 的回复:
如下是我的代码,运行之后字 符串数组仍然是空的,请高手指教

C# code

              int i = 0;
              foreach (DataRow row in dataTable.Rows)
                {
                    if (row["学院"] != null)
             ……

 

#5


引用 3 楼 sibiyellow 的回复:
引用 2 楼 wuyq11 的回复:
row["学院"].ToString().ToCharArray();

没写过这样的 楼主试下看行不 行的话给个答复 
我以后要收碰到类似的 就好办啦 呵呵

不行的吧,LZ的字符串数组
row["学院"].ToString().ToCharArray() 这个返回的是char数组

#6


引用 1 楼 peter200694013 的回复:
断点调试 ,dataTable中有数据么?

aca是什么类型?

刚才调试发现了,aca里面是有数据的,aca是string[]类型的

我做这个主要是想在combox中调用数据库,用comboBox1.Items.AddRange(aca),最后发现是因为aca中有null值,所以会报错,囧。。

#7


很晕

你断点debug看看,说不定根本就不会进你的if

#8


现在解决了?
恭喜...

如果程序运行出错,先想想哪里可能出错,然后去试着调试...

#9


多谢多谢,我开始调试的思路错了,以为我的方法有问题,没忘别的方面想。。。

#10


引用 6 楼 dim_hunter 的回复:
引用 1 楼 peter200694013 的回复:

断点调试 ,dataTable中有数据么?

aca是什么类型?

刚才调试发现了,aca里面是有数据的,aca是string[]类型的

我做这个主要是想在combox中调用数据库,用comboBox1.Items.AddRange(aca),最后发现是因为aca中有null值,所以会报错,囧。。


你的是String[],声明时大小固定了,所以赋值之后可能有Null
建议使用List<String>,
List<String> aca = new List<String>();

aca.Add(row["学院"].ToString());

#11


要么你的循环没有被执行,要么你的数据表没有数据。

#12


引用 10 楼 peter200694013 的回复:
引用 6 楼 dim_hunter 的回复:
引用 1 楼 peter200694013 的回复:

断点调试 ,dataTable中有数据么?

aca是什么类型?

刚才调试发现了,aca里面是有数据的,aca是string[]类型的

我做这个主要是想在combox中调用数据库,用comboBox1.Items.AddRange(aca),最后发现是因为aca中有null……

多谢指点。。