本文介绍了对象引用未设置为对象的实例(asp.net,c#)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我用asp.net(c#)编写了一些应用程序,这是我的问题。

此代码(带有注释字符串行)效果很好:当我打开这个页面

在Internet Explorer中我在DataGrid2中获取了一些数据来自我的数据库...

....

.. ..


OleDbConnection OleDbConn = new

OleDbConnection(ConfigurationSettings.AppSettings [" connstr]);


string selectString =" SELECT * FROM myTable"

OleDbCommand myOleDbCommand = OleDbConn.CreateCommand();

myOleDbCommand.CommandText = selectString;


OleDbDataAdapter myOleDbDataAdapter = new OleDbDataAdapter();

myOleDbDataAdapter.SelectCommand = myOleDbCommand;


DataSet myDataSet = new DataSet();

myOleDbDataAdapter.Fill(myDataSet);


//字符串s =(字符串)myDataSet.Tables [" myTable"]。行[0] [ " myColumn"];


DataGrid2.Da taSource = myDataSet;

DataGrid2.DataBind();


......

......

问题:如果我取消注释字符串行,然后我收到此

行的错误消息(

对象引用未设置为对象的实例)当我尝试打开

这个页面在Internet Explorer中。


我在我的数据库表myTable中,在这个表中我有列

myColumn,并在此

列我肯定是第一行(索引为0),但它不起作用......为什么?


请帮助...谢谢...

解决方案





我建议你在调试器中或用类似的东西检查句子:
DataTable table = myDataSet.Tables [" myTable"];
DataRow row = table.Rows [0];
对象值=行[" myColumn"];
你会看到问题出在哪里。

-
Miha Markic [MVP C#] - RightHand .NET咨询&开发
miha at rthand com







但我收到错误消息:指定的演员表无效。


如果我写而不是:


string s =(string)myDataSet.Tables [& myTable]。行[0] [" myColumn"];


这一行:


DataTable table = myDataSet.Tables [" myTable"];

DataRow row = table.Rows [0];

object value = row [" myColumn"];


我收到相同的错误消息:


"对象引用未设置为对象的实例。


和此消息显示此行:


DataRow row = table.Rows [0];


这可能意味着我可以写了myTable在


DataTable table = myDataSet.Tables [" myTable"];


因为此行没有显示错误消息。 />


I write some application with asp.net (c#) and here is my problem.
This code (with "commented" string line) works well: when i open this page
in Internet Explorer i get in DataGrid2 some data frome my database...
....
....

OleDbConnection OleDbConn = new
OleDbConnection(ConfigurationSettings.AppSettings["connstr"]);

string selectString="SELECT * FROM myTable"

OleDbCommand myOleDbCommand=OleDbConn.CreateCommand();
myOleDbCommand.CommandText=selectString;

OleDbDataAdapter myOleDbDataAdapter = new OleDbDataAdapter();
myOleDbDataAdapter.SelectCommand=myOleDbCommand;

DataSet myDataSet=new DataSet();
myOleDbDataAdapter.Fill(myDataSet);

//string s = (string) myDataSet.Tables["myTable"].Rows[0]["myColumn"];

DataGrid2.DataSource = myDataSet;
DataGrid2.DataBind();

......
......
The problem: if I "uncomment" string line, then i get error message for this
line ("
Object reference not set to an instance of an object") when i try to open
this page in Internet Explorer.

I have in my database table myTable and in this table i have column
myColumn, and in this
column i have surely first row (indexed with "0"), but it doesnt work...why?

please help...Thanks...

解决方案





I suggest you to check the sentence either in debugger or with something
like:
DataTable table = myDataSet.Tables["myTable"];
DataRow row = table.Rows[0];
object value = row["myColumn"];
And you''ll see where the problem is.

--
Miha Markic [MVP C#] - RightHand .NET consulting & development
miha at rthand com
www.rthand.com






but i get error message: Specified cast is not valid.

And if I write instead of:

string s = (string) myDataSet.Tables["myTable"].Rows[0]["myColumn"];

this lines:

DataTable table = myDataSet.Tables["myTable"];
DataRow row = table.Rows[0];
object value = row["myColumn"];

I get the same error message:

"Object reference not set to an instance of an object."

and this message appears for this line:

DataRow row = table.Rows[0];

This could mean that I can wrote "myTable" in

DataTable table = myDataSet.Tables["myTable"];

because the error message dont appear for this line.


这篇关于对象引用未设置为对象的实例(asp.net,c#)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 11:01