C# c、 网络winforms

C# c、 网络winforms,c#,C#,我是c.net的新手,我在网上发现了以下代码,并对其进行了修改,但它不起作用 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient

我是c.net的新手,我在网上发现了以下代码,并对其进行了修改,但它不起作用

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace InsertUpdateDeleteDataGridView
{
    public partial class Form1 : Form
    {
        SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\users\bj\documents\visual studio 2013\Projects\InsertUpdateDeleteDataGridView\InsertUpdateDeleteDataGridView\Information.mdf;Integrated Security=True");
        SqlCommand cmd;
        SqlDataAdapter adapt;
        //ID variable used in Updating and Deleting Record
        int id = 0;




        public Form1()
        {
            InitializeComponent();
            //invok fn
            DisplayData();
        }

        private void btninsert_Click(object sender, EventArgs e)
        {
           if(txtbxname.Text!="" && txtbxcountry.Text!="")
          {
            cmd = new SqlCommand("INSERT INTO users(name,country) VALUES(@name,@country)",con);
            con.Open();
            cmd.Parameters.AddWithValue("@name", txtbxname.Text);
            cmd.Parameters.AddWithValue("@country", txtbxcountry.Text);
            cmd.ExecuteNonQuery();
            con.Close();
            MessageBox.Show("record added succesfully","Success");
            DisplayData();
            ClearData();
           }
            else
             {
            MessageBox.Show("please provide Details!","Error");
             }

        }
           //displaying Data in DataGridView

        private void DisplayData()
        {
          con.Open();
            //creating obj of datatable method
            DataTable dt= new DataTable();
            dt = null;
            adapt.Fill(dt);
            dataGridView1.DataSource=dt;
            con.Close();
        }
        //clearing datat
        private void ClearData()
        {
            txtbxname.Text="";
            txtbxcountry.Text="";
            id=0;
        }

        private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
          id=Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());
            txtbxname.Text=dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
            txtbxcountry.Text=dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
        }
         //update record
        private void btnupdate_Click(object sender, EventArgs e) 
        {  
            if(txtbxname.Text!="" && txtbxcountry.Text!="")
            {

            cmd=new SqlCommand("UPDATE users SET name=@name,state=@state WHERE id=@id ",con);
            con.Open();
            cmd.Parameters.AddWithValue("@id",id);
            cmd.Parameters.AddWithValue("@name",txtbxname.Text);
            cmd.Parameters.AddWithValue("@country",txtbxcountry.Text);
            cmd.ExecuteNonQuery();
            MessageBox.Show("record updated succesfully","success");
            con.Close();
                DisplayData();
            ClearData();
           }
            else
            {
             MessageBox.Show("please select the record to update!","erorrr!!");
            }
         }
        //deleterecord
        private void btndelete_Click(object sender, EventArgs e)
        { 
              if(txtbxname.Text!="" && txtbxcountry.Text!="")
            {
            cmd=new SqlCommand("DELETE students WHERE id=@id",con);
            con.Open();
            cmd.Parameters.AddWithValue("@id",id);
            cmd.ExecuteNonQuery();
            con.Close();
            MessageBox.Show("record deleted successfully!");
            DisplayData();
            ClearData();

        }
        else
        {
            MessageBox.Show("please select record to delete","error");
         }


     }
   }

 }
但当我尝试运行时,这一行会调用异常

adapt.filldata(dt);

  private void DisplayData()
        {
          con.Open();
            //creating obj of datatable method
            DataTable dt= new DataTable();
            dt=null;
            adapt = new SqlDataAdapter("Select *from users ", con);
            adapt.Fill(dt);
            dataGridView1.DataSource=dt;
            con.Close();
        }
我再次修改了创建对象,但结果是ame


我搜索了很多,但没有得到任何答案,所以我被绊倒了。是否有人帮助我?

自适应对象尚未实例化。您需要首先创建对象

本文给出了一个简单的示例,说明如何创建适配器,然后调用fill方法。在创建对象之前,不能对其调用方法


你的意思是适应;行?是的,回到您在网上找到的源代码,您将看到必须添加如下内容:adapt=new SqlDataAdapterselect*from users,con;相同结果下无任何更改数据表dt=新数据表;dt=零;adapt=新的SqlDataAdapterSelect*来自用户,con;Filldt;dataGridView1.DataSource=dt;con.关闭;罗布也有同样的错误