当前位置: 代码迷 >> C# >> ConnectionString 属性尚未初始化解决办法
  详细解决方案

ConnectionString 属性尚未初始化解决办法

热度:349   发布时间:2016-05-05 05:30:12.0
ConnectionString 属性尚未初始化
public class Service
    {
        public string conStr = "Data Source=.;Initial Catalog=FlightOverbook;Integrated Security=True";
        DataSet ds = new DataSet();
        SqlDataAdapter adapter;
        public DataSet GetFlightInfo()
        {
            
            using (SqlConnection conn=new SqlConnection(conStr))
            {
                conn.Open();
                string sql = "select * from dbo.View_1";
                adapter = new SqlDataAdapter(sql,conn);
                if (ds.Tables.Count>0)
                {
                    ds.Tables.Clear();
                }
                adapter.Fill(ds,"flight");
                
            }
            return ds;
        }

         //更新
         public bool UpdateInfo()
        {
             
            SqlCommandBuilder sss = new SqlCommandBuilder(adapter);
            adapter.Update(ds, "flight"); return true;
            
        }


在datagridview中修改单元格的内容后,按确定,跳到“adapter.Update(ds, "flight"); ”就一直显示“ConnectionString 属性尚未初始化”
不修改单元格内容点确定就没问题。

我是菜鸟,求教。

private void btnOK_Click(object sender, EventArgs e)
        {
            if (ss.UpdateInfo()==true)
            {
                MessageBox.Show("修改成功");
            }
        }
------解决思路----------------------
同你的Getinfor 一样,adapter也需要初始化的。
http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommandbuilder(v=vs.110).aspx
------解决思路----------------------
UpdateInfo方法没有创建SqlConnection,你要读写数据库,都要创建这个,或者用实体框架
------解决思路----------------------
你UpdateInfo也要Connect一次。
public bool UpdateInfo()
        {
   using (SqlConnection conn=new SqlConnection(conStr))
            {
                 conn.Open();
     SqlCommandBuilder sss = new SqlCommandBuilder(adapter);
              adapter.Update(ds, "flight"); return true;
   }           
        }
  相关解决方案