<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="SqlDbType varchar相关" id="card1">
<p> 游客</p><p>
标题:SqlDbType varchar相关<br/>
正文:<br/>
问题一：在不指定varchar长度的情况下，默认是多少size？sql code:declare @payload varchar, @bin_payload varbinary(max);set @payload='郑州网建camnpr';set @bin_payload = convert(varbinary(max),@payload);select @bin_payload;select CONVERT(varchar(max),@bin_payload);这段代码输出什么？有什么问题吗？ 问题原因是：如果未在数据定义或变量声明语句中指定 n，则默认长度为 1。如果在使用 CAST 和 CONVERT 函数时未指定 n，则默认长度为 30。 (在联机丛书上可以查到 -- http://technet.microsoft.com/zh-cn/sqlserver/bb428874.aspx) 由此我想得知，在c#中的SqlParameter定义的varchar 如果没有指定长度，那么默认的是多少size呢？代码形式：SqlParameter[] myparams = new SqlParameter[]{       new SqlParameter(&amp;quot;@Camnpr&amp;quot;,SqlDbType.VarChar),       new SqlParameter(&amp;quot;@State&amp;quot;,SqlDbType.TinyInt)};myparams[0].Value = &amp;quot;郑州网建camnpr&amp;quot;; //此处的值能否添加到数据库里吗？ 测试表示可以。（已最终数据库里字段定义长度为准， 那么SqlParameter里没有检验长度对比吗？）myparams[1].Value = 1; 问题二：varchar(max) 在 C# 的SqlParameter怎么表示varchar(int size) 默认最大值 8000，英文字符占一个字节，中文字符占两个字节nvarchar(int size) 默认最大值 4000，前面加 n 表示所有字符都占有两个字节用 DbType.varchar, -1<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=587&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=587&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=587&amp;Page=1">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=587">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=587">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>