字符串变量的限制

时间:2012-03-26 07:39:48

标签: c# asp.net

我有一个Base64 jpeg图像字符串,这是一个简单的签名图像。我可以将字符串存储在SQL Server中并对其进行检索,但是当我尝试将其传递给方法或保存在Session变量中时,我得到null值。您可以传递给方法或保存在会话变量中的字符串是否有限制?

这是代码;

我从db获取字符串,

      string VSignature = ds.Tables[0].Rows[0]["SignatureB64"];

// VSignature gets valued ok
// then passed to a class with method to handle image,

      Write.GetPageOneReadyToBeAltered(f_older + "\\FDD.PDF", f_older + @"\N.PDF", 
            CertID, VSignature);

//这里VSignature为空

      public static void GetPageOneReadyToBeAltered(string PageNReader, string PageNStamper, string CertificateNo, string VSignature)
        {
        // prepare page one's copy to be altered by user  

        PdfReader pdfreader = new PdfReader(PageNReader);
        PdfStamper pdfStamper = new PdfStamper(pdfreader, new FileStream(PageNStamper, FileMode.Create));
            /*
             some pdf stuff done here, irrelevant
            */
            var pdfContentByte = pdfStamper.GetOverContent(1);

             byte[] bytSig1 = Convert.FromBase64String(VSignature);

            MemoryStream msSig1 = new MemoryStream(bytSig1);
            iTextSharp.text.Image sig1 = iTextSharp.text.Image.GetInstance(msSig1);
            sig1.SetAbsolutePosition(23, 76);
            sig1.ScaleToFit(60f, 60f);
            pdfContentByte.AddImage(sig1);
       }

感谢

2 个答案:

答案 0 :(得分:5)

如果你破坏了字符串大小的限制,你不会只获得一个空值 - 你会得到一个例外。 更可能是你在代码中做错了什么,但是你还没有向我们展示,所以很难说出来。

基本上,虽然限制(大约十亿个字符,IIRC),但你不太可能遇到它们。

答案 1 :(得分:1)

这不太可能与图像大小有关(除非你使用的是巨大的图像),无论如何你应该收到一个异常,坚持一个空值......

另见:What is the maximum possible length of a .NET string?