正常读取reader.GetInt32的方法如下

76 阅读5分钟
using System.Collections.Generic;``using System.Text; namespace Galsun.DALProfile``{``    ``public interface INullableReader``    ``{``        ``// Methods``        ``bool GetBoolean(``string name);``        ``byte GetByte(``string name);``        ``char GetChar(``string name);``        ``DateTime GetDateTime(``string name);``        ``decimal GetDecimal(``string name);``        ``double GetDouble(``string name);``        ``Guid GetGuid(``string name);``        ``short GetInt16(``string name);``        ``int GetInt32(``string name);``        ``long GetInt64(``string name);``        ``float GetSingle(``string name);``        ``string GetString(``string name);``        ``object GetValue(``string name);``        ``bool IsDBNull(``string name);     ``}``}


C# code?

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299using System;``using System.Collections.Generic;``using System.Text;``using System.Data;``using System.Data.SqlClient; namespace Galsun.DALProfile``{``    ``public sealed class NullableDataReader : IDataReader, IDisposable, IDataRecord, INullableReader``    ``{``        ``private IDataReader reader;         ``public NullableDataReader(IDataReader dataReader)``        ``{``            ``this``.reader = dataReader;``        ``}         ``public void Close()``        ``{``            ``this``.reader.Close();``        ``}          ``public void Dispose()``        ``{``            ``if (``this``.reader != ``null``)``            ``{``                ``this``.reader.Dispose();``            ``}``        ``}         ``public bool GetBoolean(``int i)``        ``{``            ``return this``.reader.GetBoolean(i);``        ``}``        ``public bool GetBoolean(``string name)``        ``{``            ``bool boolean = ``false``;``            ``if (!``this``.IsDBNull(name))``            ``{``                ``boolean = ``this``.GetBoolean(``this``.reader.GetOrdinal(name));``            ``}``            ``return boolean;``        ``}``        ``public byte GetByte(``int i)``        ``{``            ``return this``.reader.GetByte(i);``        ``}``        ``public byte GetByte(``string name)``        ``{``            ``return this``.GetByte(``this``.reader.GetOrdinal(name));``        ``}``        ``public long GetBytes(``int i, ``long fieldOffset, ``byte``[] buffer, ``int bufferoffset, ``int length)``        ``{``            ``return this``.reader.GetBytes(i, fieldOffset, buffer, bufferoffset, length);``        ``}``        ``public char GetChar(``int i)``        ``{``            ``return this``.reader.GetChar(i);``        ``}``        ``public char GetChar(``string name)``        ``{``            ``return this``.GetChar(``this``.reader.GetOrdinal(name));``        ``}``        ``public long GetChars(``int i, ``long fieldoffset, ``char``[] buffer, ``int bufferoffset, ``int length)``        ``{``            ``return this``.reader.GetChars(i, fieldoffset, buffer, bufferoffset, length);``        ``}``        ``public IDataReader GetData(``int i)``        ``{``            ``return this``.reader.GetData(i);``        ``}         ``public string GetDataTypeName(``int i)``        ``{``            ``return this``.reader.GetDataTypeName(i);``        ``}         ``public string GetDataTypeName(``string name)``        ``{``            ``return this``.reader.GetDataTypeName(``this``.reader.GetOrdinal(name));``        ``}``        ``public DateTime GetDateTime(``int i)``        ``{``            ``return this``.reader.GetDateTime(i);``        ``}``        ``public DateTime GetDateTime(``string name)``        ``{``            ``if (``this``.IsDBNull(name))``            ``{``                ``return DateTime.Now;``            ``}``            ``return this``.reader.GetDateTime(``this``.reader.GetOrdinal(name));``        ``}``        ``public decimal GetDecimal(``int i)``        ``{``            ``return this``.reader.GetDecimal(i);``        ``}``        ``public decimal GetDecimal(``string name)``        ``{``            ``decimal @``decimal = 0M;``            ``if (!``this``.IsDBNull(name))``            ``{``                ``@``decimal = ``this``.reader.GetDecimal(``this``.reader.GetOrdinal(name));``            ``}``            ``return @``decimal``;``        ``}``        ``public double GetDouble(``int i)``        ``{``            ``return this``.reader.GetDouble(i);``        ``}``        ``public double GetDouble(``string name)``        ``{``            ``double num = 0.0;``            ``if (!``this``.IsDBNull(name))``            ``{``                ``num = ``this``.reader.GetDouble(``this``.reader.GetOrdinal(name));``            ``}``            ``return num;``        ``}         ``public Type GetFieldType(``int i)``        ``{``            ``return this``.reader.GetFieldType(i);``        ``}``        ``public Type GetFieldType(``string name)``        ``{``            ``return this``.reader.GetFieldType(``this``.reader.GetOrdinal(name));``        ``}``        ``public float GetFloat(``int i)``        ``{``            ``return this``.reader.GetFloat(i);``        ``}``        ``public Guid GetGuid(``int i)``        ``{``            ``return this``.reader.GetGuid(i);``        ``}``        ``public Guid GetGuid(``string name)``        ``{``            ``return this``.reader.GetGuid(``this``.reader.GetOrdinal(name));``        ``}``        ``public short GetInt16(``int i)``        ``{``            ``return this``.reader.GetInt16(i);``        ``}``        ``public short GetInt16(``string name)``        ``{``            ``if (``this``.IsDBNull(name))``            ``{``                ``return 0;``            ``}``            ``return this``.reader.GetInt16(``this``.reader.GetOrdinal(name));``        ``}``        ``public int GetInt32(``int i)``        ``{``            ``return this``.reader.GetInt32(i);``        ``}         ``public int GetInt32(``string name)``        ``{``            ``if (``this``.IsDBNull(name))``            ``{``                ``return 0;``            ``}``            ``return this``.reader.GetInt32(``this``.reader.GetOrdinal(name));``        ``}``        ``public long GetInt64(``int i)``        ``{``            ``return this``.reader.GetInt64(i);``        ``}``        ``public long GetInt64(``string name)``        ``{``            ``if (``this``.IsDBNull(name))``            ``{``                ``return 0L;``            ``}``            ``return this``.reader.GetInt64(``this``.reader.GetOrdinal(name));``        ``}``        ``public string GetName(``int i)``        ``{``            ``return this``.reader.GetName(i);``        ``}``        ``public DateTime? GetNullableDateTime(``string name)``        ``{``            ``if (``this``.IsDBNull(name))``            ``{``                ``return null``;``            ``}``            ``return new DateTime?(``this``.reader.GetDateTime(``this``.reader.GetOrdinal(name)));``        ``}``        ``public int GetOrdinal(``string name)``        ``{``            ``return this``.reader.GetOrdinal(name);``        ``}``        ``public DataTable GetSchemaTable()``        ``{``            ``return this``.reader.GetSchemaTable();``        ``}``        ``public float GetSingle(``string name)``        ``{``            ``float @``float = 0f;``            ``if (!``this``.IsDBNull(name))``            ``{``                ``@``float = ``this``.reader.GetFloat(``this``.reader.GetOrdinal(name));``            ``}``            ``return @``float``;``        ``}``        ``public string GetString(``int i)``        ``{``            ``return this``.reader.GetString(i);``        ``}         ``public string GetString(``string name)``        ``{``            ``string str = ``string``.Empty;``            ``if (!``this``.IsDBNull(name))``            ``{``                ``str = ``this``.reader.GetString(``this``.reader.GetOrdinal(name));``            ``}``            ``return str;``        ``}``        ``public object GetValue(``int i)``        ``{``            ``return this``.reader.GetValue(i);``        ``}``        ``public object GetValue(``string name)``        ``{``            ``return this``.reader.GetValue(``this``.reader.GetOrdinal(name));``        ``}``        ``public int GetValues(``object``[] values)``        ``{``            ``return this``.reader.GetValues(values);``        ``}         ``public bool IsDBNull(``int i)``        ``{``            ``return this``.reader.IsDBNull(i);``        ``}         ``public bool IsDBNull(``string name)``        ``{``            ``return this``.reader.IsDBNull(``this``.reader.GetOrdinal(name));``        ``}         ``public bool NextResult()``        ``{``            ``return this``.reader.NextResult();``        ``}         ``public bool Read()``        ``{``            ``return this``.reader.Read();``        ``}``        ``public int Depth``        ``{``            ``get``            ``{``                ``return this``.reader.Depth;``            ``}``        ``}``        ``public int FieldCount``        ``{``            ``get``            ``{``                ``return this``.reader.FieldCount;``            ``}``        ``}``        ``public bool IsClosed``        ``{``            ``get``            ``{``                ``return this``.reader.IsClosed;``            ``}``        ``}``        ``public object this``[``int i]``        ``{``            ``get``            ``{``                ``return this``.reader[i];``            ``}``        ``}``        ``public object this``[``string name]``        ``{``            ``get``            ``{``                ``return this``.reader[name];``            ``}``        ``}         ``public int RecordsAffected``        ``{``            ``get``            ``{``                ``return this``.reader.RecordsAffected;``            ``}``        ``}``      ``}``}  ``using (NullableDataReader reader = GetinfoListByReader(table,RowNum, orderFid, Conditions))``            ``{``                ``if (reader.Read())``                ``{``                    ``foreach (PropertyInfo proper ``in type.GetProperties())``                    ``{``                        ``if (!reader.IsDBNull(proper.Name))``                            ``proper.SetValue(obj, reader.GetValue(proper.Name), ``null``);``                    ``}``                ``}``            ``}