object result =null;
            DbProviderFactory factory = GetDbProviderFactory(smartDatabaseType);
            using (DbConnection dbConnection = factory.CreateConnection())
            {
                dbConnection.ConnectionString = connectionString;
                using (DbCommand dbCommand = dbConnection.CreateCommand())
                {
                    dbCommand.CommandText = sentence;
                    if (parameters != null)
                    {
                        dbCommand.Parameters.AddRange(parameters);
                    }
                    dbConnection.Open();
                   
                    result = dbCommand.ExecuteScalar().ToString();
                }
            }
            //如果返回的是DBNull类型或者是空,则返回null
            if (result == DBNull.Value || result.ToString().Trim().Length == 0)
            {
                result = null;
            }
            return result;

解决方案 »

  1.   

    是不是SQL语句问题,长度限制,NTEXT值不能赋给VARCHAR
      

  2.   

    cast(字段   as   varchar)  
    convert(varchar(300),字段)  
    http://msdn.microsoft.com/zh-cn/library/ms187928.aspx
      

  3.   

    我只是查询啊。。这个也会出问题吗?
    数据库里没有NTEXT字段
    我也不清楚是哪个字段出的问题
      

  4.   

    在这句出的问题
    result = dbCommand.ExecuteScalar().ToString();
      

  5.   

    sb.Append(" and CAST(主题 AS NVARCHAR)='" + txtbxKey.Text + "'");
    NTEXT得转换下才能EQUEL地
      

  6.   


    CREATE PROCEDURE dt_master
    @username varchar(20),
    @password varchar(10),
    @state int output
    as
    select mm_id  from tb_mastermanage where cast( mm_username as varchar)=@username
    if(@@rowcount<1)
    begin
       set @state=0
    end
    else
    select mm_id  from tb_mastermanage where cast( mm_username as varchar)=@username and cast( mm_psw as varchar)=@password
    if(@@rowcount<1)
    begin
    set @state=0end
    else
    set @state=1return
    GO这是我的存储过程