有返回值的数据传参?
public bool sqltoArr(SqlConnection conn,string sql, out string[] reArr)
{
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(conn,sql);
da.Fill(ds);
if (ds.Tables[0].Rows.Count != 0){
reArr = new string[ds.Tables[0].Columns.Count];
for (int i = 0;i < ds.Tables[0].Columns.Count -1;i++)
{
reArr[i] = ds.Tables[0].Rows[0][i].ToString();
}
return true;
}
else{
reArr = new string[2]{"a","b"};
return false;
}
}
调用:
bool istrue;
string[] reArr;
istrue = pc.sqltoArr(conn,sql,reArr);
为什么不成功 总说无法转换,请各位请点一下.
------解决方案--------------------先改成试试
istrue = pc.sqltoArr(conn,sql,out reArr);
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------ref 也可以
------解决方案--------------------传递istrue = pc.sqltoArr(conn,sql,out reArr);
------解决方案--------------------应该这样,程序是能够通滴,但达到的功能是有问题滴!!
public bool sqltoArr(SqlConnection conn, string sql,out string[] reArr)
{
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sql,conn);
da.Fill(ds);
reArr = new string[ds.Tables[0].Columns.Count];
if (ds.Tables[0].Rows.Count != 0)
{
//reArr = new string[ds.Tables[0].Columns.Count];
for (int i = 0; i < ds.Tables[0].Columns.Count - 1; i++)
{
reArr[i] = ds.Tables[0].Rows[0][i].ToString();
}
return true;
}
else
{
//reArr = new string[3] { "a", "b" };
for (int i = 0; i < ds.Tables[0].Columns.Count - 1; i++)
reArr[i] = i.ToString();
return false;
}
}
调用:
bool istrue;
string[] reArr;
istrue = pc.sqltoArr(conn,sql,reArr);
for (int i = 0; i < reArr.Length-1; i++)
Response.Write(reArr[i].ToString());
------解决方案--------------------在调用上楼上少打out
应该这样,程序是能够通滴,但达到的功能是有问题滴!!
public bool sqltoArr(SqlConnection conn, string sql,out string[] reArr)
{
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sql,conn);
da.Fill(ds);
reArr = new string[ds.Tables[0].Columns.Count];
if (ds.Tables[0].Rows.Count != 0)
{
//reArr = new string[ds.Tables[0].Columns.Count];
for (int i = 0; i < ds.Tables[0].Columns.Count - 1; i++)
{
reArr[i] = ds.Tables[0].Rows[0][i].ToString();
}
return true;
}
else
{
//reArr = new string[3] { "a", "b" };
for (int i = 0; i < ds.Tables[0].Columns.Count - 1; i++)
reArr[i] = i.ToString();
return false;
}