Creating Business Data Connectivity Service using Visual Studio 2010


New Create Database name BCSForSharePoint2010

  • Create a new table name: Customer with the following columns:

    Module6_video04_BCS_VS2010_01.png

  • Enter new customer data

    Module6_video04_BCS_VS2010_02.png

Open Visual Studio 2010 to create a new BCS

  • File | New Project | SharePoint | 2010 | Select Data Connectivity Business Model and name BCSCustomer

    Module6_video04_BCS_VS2010_03.png

  • Select Site and click Finish to Dubugging

    Module6_video04_BCS_VS2010_04.png

Interface creates the following new

        Module6_video04_BCS_VS2010_05.png

  • Rename the Class Entity1 CustomerEntity

    Module6_video04_BCS_VS2010_06.png

  • Rename the primary key of CustomerID from Identifier1

    Module6_video04_BCS_VS2010_07.png

  • In the Properties window of the CustomerID, Name Type: select System.Int32

    Module6_video04_BCS_VS2010_08.png

BDC Explorer window

  • Expand Model | Expand BdcModel1 | Expand CustomerEntity | Expand ReadItem | Expand id and choose Identifier

    Module6_video04_BCS_VS2010_09.png

    -Rename the primary key of CustomerID from Identifier1

    Module6_video04_BCS_VS2010_10.png

    -In the Properties window of the CustomerID, Name Type: select System.Int32

    Module6_video04_BCS_VS2010_10 (1).png

    -Selected the following image

    Module6_video04_BCS_VS2010_11.png

  • Expand Model | Expand BdcModel1 | Expand CustomerEntity | Expand ReadItem | Expand returnParameter and select Entity1

    Module6_video04_BCS_VS2010_12.png

    -Change from the Customer Entity1

    Module6_video04_BCS_VS2010_13.png

    -In the customer select the CustomerID and choose Identifier1 Name Type: select System.Int32

    Module6_video04_BCS_VS2010_14.png

    -Select Message

    Module6_video04_BCS_VS2010_15.png

    -Renamed CustomerName, Type Name: System.String

    Module6_video04_BCS_VS2010_16.png

    -Click to Customer | Add Type Descriptor

    Module6_video04_BCS_VS2010_17.png

    -Named the City, the Type Name: System.String

    Module6_video04_BCS_VS2010_18.png

    -Expand Model | Expand BdcModel1 | Expand CustomerEntity | Expand ReadList | Expand returnParameter and select  Entity1List

    Module6_video04_BCS_VS2010_20.png

    -CustomerList changed

    Module6_video04_BCS_VS2010_21.png

    -Expand Model | Expand BdcModel1 | Expand CustomerEntity | Expand ReadList | Expand returnParameter | Expand  CustomerList | Choose Entity1

    Module6_video04_BCS_VS2010_22.png

    -Customer changed

    Module6_video04_BCS_VS2010_23.png

    -Expand Customer | Change Identifier1 the CustomerID

    Module6_video04_BCS_VS2010_24.png

    -In the Properties window of the CustomerID, Name Type: select System.Int32

    Module6_video04_BCS_VS2010_25.png

    -Select Message and renamed CustomerName, Type Name: System.String

    Module6_video04_BCS_VS2010_26.png

    -Click to Customer | Add Type Descriptor

    Module6_video04_BCS_VS2010_27.png

    -Named the City, the Type Name: System.String

    Module6_video04_BCS_VS2010_28.png

Solution Explorer window | Select Class Entity1

        Module6_video04_BCS_VS2010_29.png

  • Renamed Customer

    Module6_video04_BCS_VS2010_30.png

  • Declare the following code

    Module6_video04_BCS_VS2010_31.png

    public partial class Customer
        {
           
    / / TODO: Implement Additional properties here.
           
    / / The Message property is just a sample how a property could look like.
            public int CustomerID
    {get; set;}
            public string CustomerName
    {get; set;}
            public string City
    {get; set;}
        }

Method Details window BDC - CustomerEntity | collap ReadItem method, ReadList

  • Click the Add method in the combobox and select the Create Delete Method Member

    Module6_video04_BCS_VS2010_32.png

  • Interface as follows

    Module6_video04_BCS_VS2010_33.png

  • Double click on the file and found ReadItem method appears CustomerEntityService.cs
  • Using the following declaration code

    Module6_video04_BCS_VS2010_34.png

    using System.Data;
    using System.Data.SqlClient;
    using System.Data.SqlTypes;
     
  • Declare the SqlConnection method returns the name GetSqlConnection

    Module6_video04_BCS_VS2010_35.png

    GetSqlConnection static SqlConnection ()
            {
                string ConnectionString =
    "server = (local) database = BCSForSharePoint2010; Integrated Security = true";
                SqlConn SqlConnection = new SqlConnection (ConnectionString);
                sqlConn
    return;
            }
     
  • In the alternative method ReadItem error code with the following code:

    Module6_video04_BCS_VS2010_36.png

    public static ReadItem Customer (int id)
            {

                Customer customer = new Customer ();

                SqlConn = GetSqlConnection SqlConnection ();

                sqlConn.Open ();

                SqlCommand SqlCommand = new SqlCommand ();

                sqlCommand.CommandText = "select CustomerID, CustomerName, City"

                    + "From Customer"

                    + "WHERE CustomerID =" + id.ToString ();

                sqlCommand.Connection = sqlConn;

                SqlDataReader SqlDataReader = sqlCommand.ExecuteReader (CommandBehavior. CloseConnection);

                if (sqlDataReader.Read ())

                {

                    customer.CustomerID = int. Parse (SqlDataReader [0]. ToString ());

                    customer.CustomerName = SqlDataReader [1]. ToString ();

                    Customer.City = SqlDataReader [2]. ToString ();

                }

                else
                {
                    customer.CustomerID = -1;
                    customer.CustomerName =
    "Customer Not Found";
                    Customer.City =
    "";
                }
                sqlConn.Dispose ();
                return customer;
            }

     

  • In the method declaration code ReadList

    Module6_video04_BCS_VS2010_37.png

    / / / <summary>
            / / / This is a sample method for Entity1 finder.
            / / / If You Want to delete or rename the method to think about changing the xml file in the BDC model as well.
            / / / </ Summary>
            / / / <returns> IEnumerable of Entities </ returns>
            public static IEnumerable <Customer> ReadList ()
            {

                SqlConnection SqlConnection = GetSqlConnection ();

                try

                {

                    List <Customer> allCustomers = new List <Customer> ();

                    sqlConnection.Open ();

                    SqlCommand SqlCommand = new SqlCommand ();

                    sqlCommand.Connection = SqlConnection;

                    sqlCommand.CommandText = "select CustomerID, CustomerName, City from Customer";

                    SqlDataReader SqlDataReader = sqlCommand.ExecuteReader (CommandBehavior. CloseConnection);

                    while (sqlDataReader.Read ())

                    {

                        Customer customer = new Customer ();

                         customer.CustomerID = int. Parse (SqlDataReader [0]. ToString ());

                        customer.CustomerName = SqlDataReader [1]. ToString ();

                        Customer.City = SqlDataReader [2]. ToString ();

                        allCustomers.Add (customer);

                     }

                    Customer [] = new Customer customerList [allCustomers.Count];

                    for (int customerCounter = 0; customerCounter <= allCustomers.Count - 1; customerCounter + +)

                    {

                        customerList [customerCounter] = allCustomers [customerCounter];
                    }
                    return (customerList);
                }
                catch (Exception ex)
                {
                    Tellme String = ex.Message;
                    Customer [] customerlist = new Customer [0];
                    Customer customer = new Customer ();
                    customer.CustomerID = -1;
                    customer.CustomerName = "Unable to retrieve data";
                    
    Customer.City = "";

                    customerlist [0] = customer;
                    return (customerlist);
                }
                finally
                {
                    sqlConnection.Dispose ();
                }
            }

  • In the Delete method declaration code

    Module6_video04_BCS_VS2010_38.png

    public static void Delete (int CustomerID)
            {
                SqlConnection SqlConnection = GetSqlConnection ();
                sqlConnection.Open ();
                SqlCommand SqlCommand = new SqlCommand ();
                sqlCommand.Connection = SqlConnection;
                sqlCommand.CommandText = "delete customer WHERE CustomerID =" + customerID.ToString ();
               
    sqlCommand.ExecuteNonQuery ();
                sqlConnection.Dispose ();
            }

After completion code hi build and Deploy project

Module6_video04_BCS_VS2010_39.png

Open Central Administration | Application Management | Manage service selected applications

Module6_video04_BCS_VS2010_40.png

You choose to Business Data Connectivity Service

Module6_video04_BCS_VS2010_41.png

You check CustomerEntity BCSCustomer.BdcModel1 with namespace and select Icon Set Object Permissions

Module6_video04_BCS_VS2010_42.png

Add your user rights for that user and select

Module6_video04_BCS_VS2010_43.png

Open the site with the port as was at first Debungging ( http://acer:8888 ) and select All Site Content

Module6_video04_BCS_VS2010_44.png

Choose Create

Module6_video04_BCS_VS2010_45.png

Data at the category | select External List | select Create

Module6_video04_BCS_VS2010_46.png

BCSCustomer named below and select the icon to add External Content Type

Module6_video04_BCS_VS2010_47.png

Choose BdcModel1 with External Content Type and select OK BCSCustomer.BdcModel1.CustomerEntity

Module6_video04_BCS_VS2010_48.png

Choose Create

Module6_video04_BCS_VS2010_49.png

Thus BCSCustomer List has been shown to Method ReadList

Module6_video04_BCS_VS2010_50.png

Item can Delete | Click on a Combobox Item | Add Delete

Module6_video04_BCS_VS2010_51.png

OK

Module6_video04_BCS_VS2010_52.png

Item removed

Module6_video04_BCS_VS2010_53.png

Back to SQL Server to see the old data as follows and select Execute SQL Icon

Module6_video04_BCS_VS2010_54.png

Result Row Item deleted

Module6_video04_BCS_VS2010_55.png

So we finished creating the VS 2010 BCS method ReadItem, ReadList, Delete, and other similar methods

erver'>