小弟写了一个 数据查询语句:
public StringBuilder ReadPCInfoSql()
        {
            StringBuilder readPCSql = new StringBuilder();            readPCSql.Append("SELECT *");
            readPCSql.Append("  FROM  PC_UPDINFO ");
            readPCSql.Append("  WHERE  SERIAL_ID =@SERIAL_ID   AND");
            readPCSql.Append("  MAKER =@MAKER   AND");
            readPCSql.Append("  PRODUCT =@PRODUCT ");            return readPCSql;
        }
和一个执行查询的语句
string readPCSql = ReadPCInfoSql().ToString();            SqlCommand cmdPC = new SqlCommand(readPCSql, conn);            cmdPC.Parameters.AddWithValue("@SERIAL_ID", asset.SerialNumber);
            cmdPC.Parameters.AddWithValue("@MAKER", asset.Manufacturer);
            cmdPC.Parameters.AddWithValue("@PRODUCT", asset.Product);            SqlDataReader sdrPC = cmdPC.ExecuteReader();现在因为特殊需要,我需要显示出Sql 语句,小弟不知道怎么显示Sql语句才能让Sql的参数显示为 加入的参数而不是 @XX形式的      请大哥们指教

解决方案 »

  1.   

    写个函数,用Parameters里面的值replace readPCSql里面的@XX
      

  2.   

     SqlParameter[] para = new SqlParameter[3];
    para[0] = new SqlParameter("@SERIAL_ID", SqlDbType.NVarChar);
      //只写一个,其他你自己写para[0].Value = "366";  cmdADO = new SqlCommand();
                    cmdADO.CommandType = CommandType.Text;
                    cmdADO.CommandText = vstrSql;
                    cmdADO.Connection = vConnAdo;foreach (SqlParameter paraAny in para)
                            cmdADO.Parameters.Add(paraAny);
    SqlDataReader drADO;
    drADO = cmdADO.ExecuteReader();就是这样
      

  3.   

    string sql=cmdPC.CommandText.ToString();
      

  4.   

    string readPCSql = ReadPCInfoSql().ToString();
    在这加个断点不就能看见了啊!?
      

  5.   

    楼上3位  我要的是有参数的 Sql语句 不是参数 为@SERIAL_ID……     you know?   谢谢1楼2楼的 我明天实现 ……   嘿嘿 今天下班 了嘿嘿……
      

  6.   

    string sql=cmdPC.CommandText.ToString();