C#控件开发学习问题一:安全透明方法……尝试访问安全关键方法……错误

原文地址:点击打开链接

VS2010开发控件axJoGISXJW,axJoGISXJW中包含了控件AxJoGIS,在调用时提示错误如下:

创建组件“axJoGISXJW”失败。错误消息为:

 “System.MethodAccessException: 安全透明方法“JoGISXJW.axJoGISXJW.InitializeComponent()”尝试访问安全关键方法“AxJOGISLib.AxJoGIS..ctor()”失败。

程序集“JoGISXJW, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”标记为 AllowPartiallyTrustedCallersAttribute 并且使用 2 级安全透明模型。默认情况下,2 级透明将导致 AllowPartiallyTrustedCallers 程序集中的所有方法都变成安全透明的,这可能是导致发生此异常的原因。

 

解决方法:

 在类axJoGISXJW头部增加属性设置:    [System.Security.SecuritySafeCritical]

C#中,使用ADO.NET访问MDB(Microsoft Access Database)数据库并处理Form1_Load事件动态生成TextBox控件是一个常见的任务。以下是大致步骤: 1. 引入所需的命名空间: ```csharp using System.Data.OleDb; ``` 2. 在`Form1_Load`事件中动态创建TextBox控件: ```csharp private void Form1_Load(object sender, EventArgs e) { for (int i = 0; i < yourDesiredNumber; i++) { TextBox textBox = new TextBox(); textBox.Name = "textBox" + (i + 1); // 设置控件名称以便后续引用 tableLayoutPanel1.Controls.Add(textBox); } } ``` 3. 创建一个按钮事件处理器(假设命名为button1_Click),在这个方法中保存TextBox的内容到数据库: ```csharp private void button1_Click(object sender, EventArgs e) { foreach (Control control in tableLayoutPanel1.Controls) { if (control is TextBox textBox && !string.IsNullOrEmpty(textBox.Text)) { string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=yourDatabaseFile.mdb"; string query = $"INSERT INTO YourTable (ColumnName) VALUES ('{textBox.Text}')"; // 替换实际表名和列名 using (OleDbConnection connection = new OleDbConnection(connectionString)) { connection.Open(); try { OleDbCommand command = new OleDbCommand(query, connection); command.ExecuteNonQuery(); MessageBox.Show($"'{textBox.Name}' 的内容已保存到数据库。"); } catch (Exception ex) { MessageBox.Show($"保存失败: {ex.Message}"); } connection.Close(); } } } } ``` 请注意替换`connectionString`中的数据库路径、表名和列名,以及在查询字符串中的相应字段。同时,确保对数据库操作异常有适当的处理。 最后别忘了在`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值