Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 控制用户对表数据的编辑,从SQL Server数据库读入_C#_Sql_Sql Server_Visual C# Express 2010 - Fatal编程技术网

C# 控制用户对表数据的编辑,从SQL Server数据库读入

C# 控制用户对表数据的编辑,从SQL Server数据库读入,c#,sql,sql-server,visual-c#-express-2010,C#,Sql,Sql Server,Visual C# Express 2010,目前,我有一个C#应用程序正在从我的SQL Server数据库的表中读取数据 private void fillDataGrid() { string connectionString = "Server=; Database=; User Id=; Password=;"; DataTable Table = new DataTable("TestTable"); using (SqlConnection _con = new SqlConnection(connectio

目前,我有一个C#应用程序正在从我的SQL Server数据库的表中读取数据

private void fillDataGrid()
{
   string connectionString = "Server=; Database=; User Id=; Password=;";
   DataTable Table = new DataTable("TestTable");

   using (SqlConnection _con = new SqlConnection(connectionString))
   {
       string queryStatement = "SELECT * FROM dbo.table ORDER BY id ASC";

       using (SqlCommand _cmd = new SqlCommand(queryStatement, _con))
       {
           SqlDataAdapter _dap = new SqlDataAdapter(_cmd);

           _con.Open();
           _dap.Fill(Table);
           _con.Close();
       }
   }

   dataGridView1.DataSource = Table;
}
这是为了最终用户的目的和管理,我希望他们能够编辑该数据并将其提交回数据库

private void fillDataGrid()
{
   string connectionString = "Server=; Database=; User Id=; Password=;";
   DataTable Table = new DataTable("TestTable");

   using (SqlConnection _con = new SqlConnection(connectionString))
   {
       string queryStatement = "SELECT * FROM dbo.table ORDER BY id ASC";

       using (SqlCommand _cmd = new SqlCommand(queryStatement, _con))
       {
           SqlDataAdapter _dap = new SqlDataAdapter(_cmd);

           _con.Open();
           _dap.Fill(Table);
           _con.Close();
       }
   }

   dataGridView1.DataSource = Table;
}
如何将通过应用程序所做的更改再次提交到服务器


另外,假设我有一个名为
color
的列,是否有一种方法可以为每一行指定可能的数据。也就是说,不允许用户键入“黄色”,而是将红色、黄色和蓝色作为“下拉”选项?

要提交对数据库的更改,必须首先指定适配器的InsertCommand、UpdateCommand和DeleteCommand

可能会有帮助:

此外,还可以使用DataGridViewComboxColumn(注意颜色列中的空值,尽管它不能很好地处理空值)

不过,这可能可以用一种更简单的方法来实现

class ValueHolder
{
  public string Name{get;set;}

   public ValueHolder(string name)
   {
     this.Name = name;
   }

  // this part may not be necessary without nulls:
  //public override bool Equals(object obj)
  //      {
  //          ValueHolder other = obj as ValueHolder;
  //          if (other.Name.Equals(this.Name)) return true;
  //          return false;
  //      }

  //      public override int GetHashCode()
  //      {
  //          return Name == null ? 0 : Name.GetHashCode();
  //      } 
}