字符串变量的限制

Kar*_*man 3 c# asp.net

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

这是代码;

我从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);
Run Code Online (Sandbox Code Playgroud)

//这里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);
       }
Run Code Online (Sandbox Code Playgroud)

谢谢

Jon*_*eet 5

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

基本上,虽然限制(约一十亿个字符,IIRC),这是非常不可能的,你正在运行到他们.