专案需要,需要在数据库中提供一个些数据,可让用户读取,但不能修改。
或许你需要创建一个表,手动添加这些静态数据,这样的话,用户有可能直接打开数据库修改。
也许你会创建一个table-valued 函数并加密。

解决方案很多,下面Insus.NET使用Clr存储过程来实现,把数据直接设置于CLR程序中。当部署于SQL时,如果用户没有拿到dll,也许一时无法修改,仅能只读了。

创建一个CLR存储过程:
在数据库中提供只读数据


可复制代码:

[Microsoft.SqlServer.Server.SqlProcedure]
    public static void SiteInfor()
    {       
       //创建变量
        SqlMetaData Id;
        SqlMetaData Name;
        SqlMetaData Key;
        SqlDataRecord record;

        //创建metadata列(字段)。
        Id = new SqlMetaData("Id", SqlDbType.Int);
        Name = new SqlMetaData("Name", SqlDbType.NVarChar,25);
        Key = new SqlMetaData("Key", SqlDbType.NVarChar,30);

        //使用metadata列创建一笔新记录
        record = new SqlDataRecord(new SqlMetaData[] { Id, Name, Key });

        //为列域赋值。
        record.SetInt32(0,1);
        record.SetString(1, "DG");
        record.SetString(2, "5a01ceba-4168-44a2-a68a-5b430e5ad127");

        //将记录发送到调用程序。
        SqlContext.Pipe.Send(record);
    }
View Code

相关文章:

  • 2021-07-08
  • 2022-12-23
  • 2022-12-23
  • 2021-12-11
  • 2021-09-01
  • 2021-08-01
  • 2021-09-29
  • 2022-12-23
猜你喜欢
  • 2022-01-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-25
  • 2021-04-20
  • 2022-12-23
相关资源
相似解决方案