c# - System.TypeInitializationException:
问题描述
我想寻求帮助,因为我一直在探索这个问题。如果我在理解和寻求您的帮助方面犯了一个大错误,我是一名初学者开发人员 :)
我开始编写一个程序,在其中为 sql 查询和连接创建了一个静态类。登录后,dgv 应显示数据:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Configuration;
using System.Windows.Forms;
namespace ParkingMaster
{
static class SqlHandle
{
static SqlConnection connection;
static SqlCommand command;
static SqlHandle ()
{
connection.ConnectionString = ConfigurationManager.ConnectionStrings["ParkingMaster.Properties.Settings.Setting"].ToString();
try
{
connection.Open();
MessageBox.Show("Connection opened!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
throw;
}
}
public static void ConnClose()
{
try
{
connection.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + "Hiba a kapcsolat bezárásakor");
throw;
}
}
public static List<Cars> ReadList()
{
List<Cars> results = new List<Cars>();
try
{
string sql = "SELECT * FROM [Cars]";
command = new SqlCommand(sql, connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
results.Add(new Cars(
(int)reader["car_id"],
reader["car_plate_id_char"].ToString(),
(int)reader["car_plate_id_num"],
(DateTime)reader["creationdate"]));
}
reader.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
throw;
}
return results;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ParkingMaster
{
class Cars
{
public int Id { get; set; }
public string Plate_id_char { get; set; }
public int Plate_id_num { get; set; }
public DateTime Creationdate { get; set; }
/*
public string FullInfo
{
get
{
return $"{id} {plate_id_char} {plate_id_num} {creationdate}";
}
}
*/
public Cars(int id, string plate_id_char, int plate_id_num, DateTime creationdate)
{
this.Id = id;
this.Plate_id_char = plate_id_char;
this.Plate_id_num = plate_id_num;
this.Creationdate = creationdate;
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Reflection;
namespace ParkingMaster
{
public partial class mainForm : Form
{
List<Cars> cars;
List<Cars> keresett_cars;
//DbConnection dbConnection = new DbConnection();
public mainForm()
{
InitializeComponent();
//carFoundListbox.DataSource = cars;
}
private void mainForm_Load(object sender, EventArgs e)
{
try
{
cars = SqlHandle.ReadList();
datagridview_megjelenit();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Hiba", MessageBoxButtons.OK, MessageBoxIcon.Error);
throw;
}
}
private void btnVehicleListDgv_Click(object sender, EventArgs e)
{
}
void datagridview_megjelenit()
{
//Inicializálás
dataGridView1.DataSource = null;
dataGridView1.AllowUserToAddRows = false;
dataGridView1.Rows.Clear();
if (dataGridView1.Columns.Count == 0)
{
foreach (PropertyInfo elem in typeof(Cars).GetProperties())
{
dataGridView1.Columns.Add(elem.Name, elem.Name);
}
}
foreach (Cars item in cars) //sorok
{
dataGridView1.Rows.Add(); //sorokon belül az oszlopok (mezők) hozzáadása
for (int i = 0; i < typeof(Cars).GetProperties().Length; i++)
{
dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[i].Value = typeof(Cars).GetProperties()[i].GetValue(item);
}
}
}
}
}
解决方案
当静态构造函数中存在未处理的异常时,就会发生该异常。
在你的情况下,我猜你是在实例化之前尝试访问 的ConnectionString
属性。SQLConnection connection
connection
代替
connection.ConnectionString = ConfigurationManager.ConnectionStrings["ParkingMaster.Properties.Settings.Setting"].ToString();
尝试
SQLConnection connection = new SQLConnection(ConfigurationManager.ConnectionStrings["ParkingMaster.Properties.Settings.Setting"].ToString());
推荐阅读
- javascript - 无法使用 php、js、ajax 从联系表单接收信息?
- java - 如何防止 url 在 web 视图中显示
- android - 我无法在使用 Android 9 或 + 并使用 Plugin.BLE Xamarin Forms 时更新蓝牙设备
- mdriven - 使用 ViewModelAsXML 生成 XML
- pandas - 如何使用字典中的数据初始化索引参数
- verilog - 在摩尔机中使输出 LED 闪烁
- asp.net-core - .Net Core 3.1 迁移。IdentityDbContext 不继承 DbContext
- python - 使用 Azure 函数将 URL 和参数重定向到另一个 HTTP 服务器 )Py)
- java - 在 Firebase 身份验证中删除帐户 ID 后,防止用户使用相同的用户凭据进行注册
- javascript - 如何在 map 方法中创建超链接?