我正在使用一个类payfeeclass将用户控件连接到数据库,然后在usercontrol中调用该类(即“payfee.cs”),但它抛出了一个错误:
这是我的“payfee.cs”代码
using SSC_LIBRARY.Classes;
using System;
using System.Windows.Forms;
namespace SSC_LIBRARY
{
public partial class PayFee : UserControl
{
public PayFee()
{
InitializeComponent();
}
PayFeeClass pfc = new PayFeeClass();
public void Clear()
{
t1.Text = "";
t2.Text = "";
t3.Text = "";
t4.Text = "";
t5.Text = "";
t6.Text = "";
}
private void PayFee_Load(object sender, EventArgs e)
{
}
private void B2_Click(object sender, EventArgs e)
{
pfc.Fee_ID = t1.Text;
pfc.Student_ID = t2.Text;
pfc.ChallanNo = t3.Text;
pfc.Amount = t4.Text;
pfc.Due_date = t5.Value.Date;
pfc.Fee_type = t6.selectedValue;
bool success = pfc.Insert(pfc);
if (success == true)
{
MessageBox.Show("Record Inserted");
Clear();
}
else
{
MessageBox.Show("Record not Added. Try again!");
}
}
private void t6_onItemSelected(object sender, EventArgs e)
{
}
}
}
这是我的payfeeclass代码:
using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Data;
using System.Configuration;
using System.Windows.Forms;
namespace SSC_LIBRARY.Classes
{
class PayFeeClass
{
public string Fee_ID { get; set; }
public string Student_ID { get; set; }
public string ChallanNo { get; set; }
public string Amount { get; set; }
public DateTime Due_date { get; set; }
public string Fee_type { get; set; }
static string myconnstr =
ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
public DataTable Select()
{
//Step1: Database connection
MySqlConnection conn = new MySqlConnection(myconnstr);
DataTable dt = new DataTable();
try
{
//Step2: Writing SQL Query
string sql = "SELECT * FROM fee";
MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
conn.Open();
adapter.Fill(dt);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
return dt;
}
public bool Insert(PayFeeClass pfc)
{
bool isSuccess = false;
MySqlConnection conn = new MySqlConnection(myconnstr);
try
{
string sql = "INSERT INTO fee (Fee_ID, Student_ID, ChallanNo,
Amount, Due_date, Fee_type) VALUES (@Fee_ID, @Student_ID, @ChallanNo,
@Amount, @Due_date, @Fee_type)";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@Fee_ID", pfc.Fee_ID);
cmd.Parameters.AddWithValue("@Student_ID", pfc.Student_ID);
cmd.Parameters.AddWithValue("@ChallanNo", pfc.ChallanNo);
cmd.Parameters.AddWithValue("@Amount", pfc.Amount);
cmd.Parameters.AddWithValue("@Due_date", pfc.Due_date);
cmd.Parameters.AddWithValue("@Fee_type", pfc.Fee_type);
conn.Open();
int rows = cmd.ExecuteNonQuery();
if (rows > 0)
{
isSuccess = true;
}
else
{
isSuccess = false;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
return isSuccess;
}
}
}
但是当我将用户控件拖到主窗体时,它会给出错误
1条答案
按热度按时间c6ubokkw1#
由于payfeeclass.cs中的以下行引发了异常:
visual studio使用的app.config的connectionString部分(请注意,不是应用程序使用的部分)没有连接字符串项
connstr
有两个选项可以解决此问题:第一个选项,将设置连接字符串属性的行移到单独的位置Initialise
从窗体类调用的函数。第二个选项是检查usercontrol是否处于designmode。
把它放在控件构造函数中,只在运行时而不是设计时检索连接字符串。