通过 Visual Studio 2010 创建 Business Data Connectivity Service 进行外部数据的连接

第一步:创建Sql 数据库与数据表(如上文,略)

第二步:通过VS2010创建Business Data Connectivity Model类型的Project

1):创建BDCModel 类型的Project

2):绑定到对应的Site上

第三步:对初始化的Entity类进行属性的调整,以及对默认的Read List 和 Read Item方法进行属性调整

1):将初始化的Entity名字修改成为Product

===============================================================================

2):将主键修改成为ProductID,设置为int32类型

3):对ReadList方法中的属性进行修改(return parameter --> 即:应该返回所有item的集合)

  注:各字段类型要匹配ProductID为int32,ProductName和ProductDescription为string】

======================================================================

==============================================================

=============================================================================

4):仿造上面的步骤对ReadItem方法中的属性进行修改(id and return parameter --> 即:根据选择item的id返回该item的所有信息)

  【注:各字段类型要匹配ProductID为int32,ProductName和ProductDescription为string】

第四步:到Solution Explorer中将原始的Entity1类修改为我们使用的Product类,使之与数据库中Product表字段对应

第五步:在ProductService.cs中完成ReadList和ReadItem方法,使之在操作List中的Item时,能够完成对数据库中的数据的更新。代码如下:

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

namespace BdcModelProject2.BdcModel1
{
    public class ProductService
    {
        static SqlConnection getSqlConnection()
        {
            string connectionString = "server=(local);database = EricSunDB;Integrated Security = true";
            SqlConnection sqlConn = new SqlConnection(connectionString);
            return sqlConn;
        }

        public static Product ReadItem(int id)
        {
            //TODO: This is just a sample. Replace this simple sample with valid code.
            Product product = new Product();
            SqlConnection sqlConn = getSqlConnection();
            sqlConn.Open();
            SqlCommand sqlCommand = new SqlCommand();
            sqlCommand.CommandText = "select ProductID, ProductName, ProductDescription from Product where ProductID=" + id.ToString();
            sqlCommand.Connection = sqlConn;
            SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(CommandBehavior.CloseConnection);
            if (sqlDataReader.Read())
            {
                product.ProductID = int.Parse(sqlDataReader[0].ToString());
                product.ProductName = sqlDataReader[1].ToString();
                product.ProductDescription = sqlDataReader[2].ToString();
            }
            else
            {
                product.ProductID = -1;
                product.ProductName = "Product Not Found";
                product.ProductDescription = "";
            }

            sqlConn.Dispose();
            return product;
        }

        public static IEnumerable<Product> ReadList()
        {
            //TODO: This is just a sample. Replace this simple sample with valid code.
            SqlConnection sqlConn = getSqlConnection();
            try
            {
                List<Product> productList = new List<Product>();
                sqlConn.Open();
                SqlCommand sqlComm = new SqlCommand();
                sqlComm.Connection = sqlConn;
                sqlComm.CommandText = "select ProductID, ProductName, ProductDescription from Product";
                SqlDataReader sqlDataReader = sqlComm.ExecuteReader(CommandBehavior.CloseConnection);
                while (sqlDataReader.Read())
                {
                    Product product = new Product();
                    product.ProductID = int.Parse(sqlDataReader[0].ToString());
                    product.ProductName = sqlDataReader[1].ToString();
                    product.ProductDescription = sqlDataReader[2].ToString();
                    productList.Add(product);
                }
                return productList;
            }
            catch (Exception ex)
            {
                string tellMe = ex.ToString();
                Product[] productList = new Product[0];
                Product product = new Product();
                product.ProductID = -1;
                product.ProductName = "Unable to retrieve data";
                productList[0] = product;
                return (productList);
            }
            finally
            {
                sqlConn.Dispose();
            }
        }
    }
}

第六步:(主要步骤与上篇的一样,故省略)

1):deploy整个工程

2):之后在SharePoint 的 CA 中Business Data Connectivity Service(Application)中可以看到刚刚创建出来的External Content Type,之后对此实例进行Set Object Permission 和 Set Metadata Store Permission操作

3):然后到SharePoint中的对应site中创建一个External类型的List,并绑定到刚刚创建出来External Content Type,这样创建出来的List就与数据库中表的数据一一对应了

************************************************************************************************************************

************************************************************************************************************************

如果要完成对Item的Delete,Create,Update这些操作,请看如下步骤

附加第一步:创建Delete,Create,Update这三种方法

附加第二步:在后台完成对数据库的这三种操作,代码如下所示

public static void Delete(int productID)
        {
            SqlConnection sqlConn = getSqlConnection();
            sqlConn.Open();
            SqlCommand sqlComm = new SqlCommand();
            sqlComm.Connection = sqlConn;
            sqlComm.CommandText = "delete from Product where ProductID=" + productID.ToString();
            sqlComm.ExecuteNonQuery();
            sqlConn.Dispose();
        }

        public static Product Create(Product newProductEntity)
        {
            SqlConnection sqlConn = getSqlConnection();
            sqlConn.Open();
            SqlCommand sqlComm = new SqlCommand();
            sqlComm.Connection = sqlConn;
            sqlComm.CommandText = "insert into Product(ProductName, ProductDescription) values('" + newProductEntity.ProductName + "', '" + newProductEntity.ProductDescription + "')";
            sqlComm.ExecuteNonQuery();
            sqlConn.Dispose();
            return newProductEntity;
        }

        public static void Update(Product productEntity)
        {
            SqlConnection sqlConn = getSqlConnection();
            sqlConn.Open();
            SqlCommand sqlComm = new SqlCommand();
            sqlComm.Connection = sqlConn;
            sqlComm.CommandText = "update Product set ProductID='"+productEntity.ProductID+"', ProductName='" + productEntity.ProductName + "', ProductDescription='" + productEntity.ProductDescription + "' where ProductID='" + productEntity.ProductID.ToString() + "'";
            sqlComm.ExecuteNonQuery();
            sqlConn.Dispose();
        }

附加第三步:用SharePoint Designer创建New,Update操作时显示的Form(如果不创建对应的Form,在点击操作的时候会有提示报错)

之后就可以在Sharepoint中对Item进行delete,create,edit操作了。

原文地址:https://www.cnblogs.com/mingmingruyuedlut/p/2785639.html