Ado.net - 大小属性为0无效大小 [英] Ado.net - the Size property has an invalid size of 0

查看:94
本文介绍了Ado.net - 大小属性为0无效大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我试图通过ADO.net得到产值从数据库。有一个客户端code:


I'm trying to get output value from DB via ADO.net. There's a client code:

    using (var connection = new SqlConnection(ConnectionString))
    {
        connection.Open();
        SqlCommand command = new SqlCommand("pDoSomethingParamsRes", connection);
        command.CommandType = CommandType.StoredProcedure;
        command.Parameters.Add("@i", 1);
        var outParam = new SqlParameter("@out", SqlDbType.VarChar);
        outParam.Direction = ParameterDirection.Output;
        command.Parameters.Add(outParam);
        command.ExecuteNonQuery();
        Console.WriteLine(command.Parameters["@out"].Value.ToString());
    }

当我运行此我得到以下异常:

When I run this I get the following exception:

the Size property has an invalid size of 0

据手册<一href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter.size.aspx">SqlParameter.Size物业我可能会忽略的大小。为什么我得到这个异​​常? 如何使它没有通过规模运作?
谢谢您的帮助!

According to manual SqlParameter.Size Property I might omit size. Why do I get this exception? How to make it work without passing size?
Thank you for your help!

推荐答案

VARCHAR和NVARCHAR是可变宽度的字符字段(因此VAR +字符)。你必须设定长度,否则默认为零。

VarChar and NVarChar are variable width character fields (thus var+char). You have to set the length, otherwise the default is zero.

这篇关于Ado.net - 大小属性为0无效大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆