Find data by primary key, if not found add to database : DataColumn « ADO.Net « C# / CSharp Tutorial






using System;
using System.Data;            
using System.Data.SqlClient;  
using System.Collections.Generic;
using System.Text;


  class Program
  {
    static void Main(string[] args)
    {
      SqlConnection thisConnection = new SqlConnection(
                @"Data Source=.\SQLEXPRESS;" +
                @"AttachDbFilename='NORTHWND.MDF';" +
                @"Integrated Security=True;Connect Timeout=30;User Instance=true");
      SqlDataAdapter thisAdapter = new SqlDataAdapter("SELECT CustomerID, CompanyName FROM Customers", thisConnection);

      SqlCommandBuilder thisBuilder = new SqlCommandBuilder(thisAdapter);

      DataSet thisDataSet = new DataSet();

      thisAdapter.Fill(thisDataSet, "Customers");

      Console.WriteLine("# rows before change: {0}",thisDataSet.Tables["Customers"].Rows.Count);

      DataColumn[] keys = new DataColumn[1];
      keys[0] = thisDataSet.Tables["Customers"].Columns["CustomerID"];
      thisDataSet.Tables["Customers"].PrimaryKey = keys;

      DataRow findRow = thisDataSet.Tables["Customers"].Rows.Find("1");
      if (findRow == null)
      {
        DataRow thisRow = thisDataSet.Tables["Customers"].NewRow();
        thisRow["CustomerID"] = "1";
        thisRow["CompanyName"] = "Abc Ltd.";
        thisDataSet.Tables["Customers"].Rows.Add(thisRow);
        if ((findRow = thisDataSet.Tables["Customers"].Rows.Find("1")) != null)
        {
          Console.WriteLine("success");
        }
      }
      thisAdapter.Update(thisDataSet, "Customers");
      Console.WriteLine(thisDataSet.Tables["Customers"].Rows.Count);
      thisConnection.Close();
    }
  }








32.37.DataColumn
32.37.1.Use a relationship with a calculated column
32.37.2.Set auto increment, seed and step for primary key column
32.37.3.Output DataSet as Binary file
32.37.4.Find data by primary key, if not found add to database
32.37.5.Creating an Autoincrementing Primary Key
32.37.6.Add an expression column to the table