当前位置: 代码迷 >> C# >> sql数据库查询结果惠存二维数组,结果都是0?求帮助
  详细解决方案

sql数据库查询结果惠存二维数组,结果都是0?求帮助

热度:57   发布时间:2016-05-05 03:55:05.0
sql数据库查询结果存入二维数组,结果都是0?求帮助
           
 SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "select top 10 工件材料,主偏角,前角,刀具直径,刀齿数,铣削速度,铣削深度,进给量  from 加工实例数据.dbo.铣刀实例 where [email protected] and [email protected] and 刀具寿命<>null";
            cmd.Connection = conn;
            SqlParameter parajgfs = new SqlParameter("@加工方式", SqlDbType.VarChar);
            parajgfs.Value = ddl_jgfs.SelectedValue;
            cmd.Parameters.Add(parajgfs);
            SqlParameter paradjcl = new SqlParameter("@刀具材料", SqlDbType.VarChar);
            paradjcl.Value = ddl_djcl.SelectedValue;
            cmd.Parameters.Add(paradjcl);
            SqlDataReader data = cmd.ExecuteReader();
            double[,] day1 = new double[10, 8];
            while (data.Read())
            {
                for (int i = 0; i < 10; i++)
                {
                    for (int j = 0; j < 8; j++)
                    { 
                        day1[i,j] = Convert.ToDouble(data[i*8+j]);
                    }
                }   
            }
            data.Close();
            SqlCommand cmd2 = new SqlCommand();
            cmd2.CommandText = "select top 10 刀具寿命 from 加工实例数据.dbo.铣刀实例 where [email protected] and [email protected] and 刀具寿命<>null";
            cmd2.Connection = conn;
            SqlParameter parajgfs2 = new SqlParameter("@加工方式2", SqlDbType.VarChar);
            parajgfs2.Value = ddl_jgfs.SelectedValue;
            cmd2.Parameters.Add(parajgfs2);
            SqlParameter paradjcl2 = new SqlParameter("@刀具材料2", SqlDbType.VarChar);
            paradjcl2.Value = ddl_djcl.SelectedValue;
            cmd2.Parameters.Add(paradjcl2);
            SqlDataReader data1 = cmd2.ExecuteReader();
            double[,] day2 = new double[10, 1];
            while (data1.Read())
            {
                for (int i = 0; i < 10; i++)
                {
                   
                        day2[i, 0] = Convert.ToDouble(data1[i]);
                 
                }
            }
            
            data1.Close();

我的目的是分别将查询结果存入day1和day2两个数组中,但是通过上述代码对数组赋值操作后,数组内的数字都为0?
这是为什么???
------解决思路----------------------
data1的逻辑如果你想明白了
那么data其实一样
你是把其中一行的79列数据给填充进二维数组里

而不是把每一行数据填充进数组的其中一行里
------解决思路----------------------
断点跟,看while循环到底执行了几次,data1.Read()返回的是什么

数据库中有数据,不代表你的SQL语句能查询到数据

仔细检查查询条件
------解决思路----------------------
引用:
Quote: 引用:

你可以向上面说的,先Fill到DataSet,然后对于DataSet你就可以循环处理了,因为DataTable本质上也是二维表格

能不能麻烦帮忙写个小代码学习一下,您这么直接说,我也不懂啊。


            string strSQL = "Select * from blah blah";
            using (SqlConnection conn = new SqlConnection("ConnectionString"))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(strSQL, conn);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);

                //取出了DataTable该怎么玩就怎么玩吧
            }
  相关解决方案