代码很简单,如下:
------------------------------------------------
SqlConnection connection = new SqlConnection();
connection.ConnectionString = "SERVER=(local); UID=sa; PWD=sa; DATABASE=MyDb;";
connection.Open();SqlCommand command = new SqlCommand();
command.CommandText = "Select * From mytable";
command.Connection = connection;
command.CommandType = CommandType.Text;SqlDataReader reader = command.ExecuteReader();while (reader.Read())
{
Console.WriteLine(reader[3]); // Error,如果改成reader.getString(3)则没有错误
}reader.Close();
-----------------------------------------
出错信息为:
Unhandled Exception: System.OverflowException: Conversion overflows.
at System.Data.SqlClient.TdsParser.ProcessRow(_SqlMetaData[] columns, Object[] buffer, Int32[] map, Boolean useSQLTyp
es)
at System.Data.SqlClient.SqlDataReader.PrepareRecord(Int32 i)
at System.Data.SqlClient.SqlDataReader.GetValue(Int32 i)
at System.Data.SqlClient.SqlDataReader.get_Item(Int32 i)
at ConsoleApplication1.Class1.Main(String[] args) in d:\myproject\consoleapplication1\class1.cs:line 84但是如果将代码改为如下,就正确:
------------------------------------------------
SqlConnection connection = new SqlConnection();
connection.ConnectionString = "SERVER=(local); UID=sa; PWD=sa; DATABASE=MyDb;";
connection.Open();SqlCommand command = new SqlCommand();
command.CommandText = "Select name From mytable";
command.Connection = connection;
command.CommandType = CommandType.Text;SqlDataReader reader = command.ExecuteReader();while (reader.Read())
{
Console.WriteLine(reader[0]); // Goodreader.Close();
-----------------------------------------难道使用read[]的时候,select语句只能返回1个column?
------------------------------------------------
SqlConnection connection = new SqlConnection();
connection.ConnectionString = "SERVER=(local); UID=sa; PWD=sa; DATABASE=MyDb;";
connection.Open();SqlCommand command = new SqlCommand();
command.CommandText = "Select * From mytable";
command.Connection = connection;
command.CommandType = CommandType.Text;SqlDataReader reader = command.ExecuteReader();while (reader.Read())
{
Console.WriteLine(reader[3]); // Error,如果改成reader.getString(3)则没有错误
}reader.Close();
-----------------------------------------
出错信息为:
Unhandled Exception: System.OverflowException: Conversion overflows.
at System.Data.SqlClient.TdsParser.ProcessRow(_SqlMetaData[] columns, Object[] buffer, Int32[] map, Boolean useSQLTyp
es)
at System.Data.SqlClient.SqlDataReader.PrepareRecord(Int32 i)
at System.Data.SqlClient.SqlDataReader.GetValue(Int32 i)
at System.Data.SqlClient.SqlDataReader.get_Item(Int32 i)
at ConsoleApplication1.Class1.Main(String[] args) in d:\myproject\consoleapplication1\class1.cs:line 84但是如果将代码改为如下,就正确:
------------------------------------------------
SqlConnection connection = new SqlConnection();
connection.ConnectionString = "SERVER=(local); UID=sa; PWD=sa; DATABASE=MyDb;";
connection.Open();SqlCommand command = new SqlCommand();
command.CommandText = "Select name From mytable";
command.Connection = connection;
command.CommandType = CommandType.Text;SqlDataReader reader = command.ExecuteReader();while (reader.Read())
{
Console.WriteLine(reader[0]); // Goodreader.Close();
-----------------------------------------难道使用read[]的时候,select语句只能返回1个column?
解决方案 »
- 关于从数据库datatime中读取年月日
- textbox TextMode=“Password” 后台怎么赋值
- 得了神经衰弱了
- fckeditor用FileUpload如何及时的显示上传内容
- Calendar服务器控件为什么到了网络环境就不起作用了,十万火急!请各位大虾帮忙!
- 我把datalist,RepeatColumns设置为3,每个纪录间距为100。可高度有问题了,间距太大了!!!
- ASP.NET给select联动赋值
- 关于DataGrid列表中,在某一列放一个文本框,当点击文本框就进行编辑,编辑完后能不能按回车键(或失去焦点),就进入后台对当行数据进行
- 怎么判断DataGird的模板列中的CheckBox是否被选?
- 关于MVC中Action重名问题求解
- ASP创建文件夹问题
- 有关IsPostBack和页面频繁刷新的问题
改为Console.WriteLine(reader["第三列的列名"].ToString())