【小白求助】使用SqlDataAdapter的fill方法报空指针错误

趁着头发多我想做游戏 2017-05-25 02:33:27
想实现一个游戏的登录和注册功能,经过测试,已经成功连接上了sql sever了,代码如下:

void Start()
{
//连接SQL
string s = @String.Format("server = {0};database = {1};uid = {2};pwd = {3};", host, databaseName, ID, pwd); ;
connection = new SqlConnection(s);
connection.Open();
}

实现注册功能的思路是,先查看数据库中是否有同名的账号,否,则调用插入函数插入账号密码到数据库中

//查询结果以DataSet类返回
public DataSet sqlCheck(string something,string tablename)
{
string sentense = " select "+something+" from "+tablename;
SqlDataAdapter _adapter = new SqlDataAdapter(sentense, connection);
DataSet ds = new DataSet();
_adapter.Fill(ds, tablename);

return ds;
}


public DataSet sqlInsert(string values,string tablename)
{
string sentense = " insert into " + tablename + " values (" + values + ")";
SqlDataAdapter _adapter = new SqlDataAdapter(sentense, connection);
DataSet ds = new DataSet();
_adapter.Fill(ds, tablename);

return ds;
}


如果分别测试两个方法,发现可以正常查看或者插入数据,但是一旦先调用sqlCheck()再调用sqlInsert()就会报错:

NullReferenceException: Object reference not set to an instance of an object
System.Data.Common.DataAdapter.BuildSchema (IDataReader reader, System.Data.DataTable table, SchemaType schemaType, MissingSchemaAction missingSchAction, MissingMappingAction missingMapAction, System.Data.Common.DataTableMappingCollection dtMapping)
System.Data.Common.DataAdapter.BuildSchema (IDataReader reader, System.Data.DataTable table, SchemaType schemaType)
System.Data.Common.DataAdapter.FillTable (System.Data.DataTable dataTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords, System.Int32& counter)
System.Data.Common.DataAdapter.FillInternal (System.Data.DataSet dataSet, System.String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
System.Data.Common.DataAdapter.Fill (System.Data.DataSet dataSet, System.String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
System.Data.Common.DbDataAdapter.Fill (System.Data.DataSet dataSet, Int32 startRecord, Int32 maxRecords, System.String srcTable, IDbCommand command, CommandBehavior behavior)
System.Data.Common.DbDataAdapter.Fill (System.Data.DataSet dataSet, System.String srcTable)
(wrapper remoting-invoke-with-check) System.Data.Common.DbDataAdapter:Fill (System.Data.DataSet,string)

困扰了很多天了,求助求助!
...全文
1210 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
问题已经解决,不懂的朋友可以点击http://bbs.csdn.net/topics/392172933?page=1#post-402553310拉倒底部看我的回复
LoveMollyWendy 2017-05-26
  • 打赏
  • 举报
回复
System.data.dll、I18N.dll、I18N.West.dll和I18N.CJK.dll 这些dll都放到asset下了?
  • 打赏
  • 举报
回复
引用 4 楼 a958832776 的回复:
System.data.dll、I18N.dll、I18N.West.dll和I18N.CJK.dll 这些dll都放到asset下了?
放了,sql已经连接成功了
  • 打赏
  • 举报
回复
提示是sqlInsert()那个方法的 _adapter.Fill(ds, tablename); 这一句报错,空指针异常
LoveMollyWendy 2017-05-25
  • 打赏
  • 举报
回复
https://msdn.microsoft.com/zh-cn/library/49z48hxc(v=vs.110).aspx
LoveMollyWendy 2017-05-25
  • 打赏
  • 举报
回复
具体是哪里出错?

2,543

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧