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语句能查询到数据
仔细检查查询条件
------解决思路----------------------
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该怎么玩就怎么玩吧
}