Insert是一个变量,但是像从主类调用class1的方法一样使用
本文关键字:class1 方法 调用 一样 变量 一个 Insert | 更新日期: 2023-09-27 18:11:09
我不知道我哪里做错了。我试图在主类中调用class1.cs, SQL命令参数,但我得到错误。我从我以前的线程工作在这里如果有人能帮助我,我将非常感激,提前感谢。
class.cs
public static OleDbConnection GetConnection()
{
var myCon = new OleDbConnection();
myCon.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:'...Database1.mdb";
return myCon;
}
public static void Insert(string id, string agegroup, string gender, string crimoff, string photoa, string cv)
{
var con = GetConnection();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO Table1 (ID, AgeGroup, Gender, CriminalOffence, photo, CV )";
cmd.Parameters.AddWithValue("@ID", id);
cmd.Parameters.AddWithValue("@AgeGroup", agegroup);
cmd.Parameters.AddWithValue("@Gender", gender);
cmd.Parameters.AddWithValue("@CriminalOffence", crimoff);
cmd.Parameters.AddWithValue("@photo", photoa);
cmd.Parameters.AddWithValue("@CV", cv);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
主表单类,我得到错误…
private void btnInsert_Click(object sender, EventArgs e)
{
Class1 Insert = new Class1();
Insert(textBox1.Text, comboBox1.Text, comboBox2.Text, rBYes.Text, rBNo.Text, // error pointing at Insert line
pictureBox1.Image, richTextBox1.Text);
if (pictureBox1.Image != null)
{
//using MemoryStream:
ms = new MemoryStream();
pictureBox1.Image.Save(ms, ImageFormat.Jpeg);
byte[] photo_aray = new byte[ms.Length];
ms.Position = 0;
ms.Read(photo_aray, 0, photo_aray.Length);
cmd.Parameters.AddWithValue("@photo", photo_aray);
}
您不需要创建对象来调用静态方法。如果方法在相同的命名空间中,您可以像下面这样调用直接方法。
Insert(textBox1.Text, comboBox1.Text, comboBox2.Text, rBYes.Text, rBNo.Text,
pictureBox1.Image, richTextBox1.Text);
但是将创建的对象的名称更改为Insert
Class1 Insert = new Class1(); // remove this line
如果你的方法Insert
写在Class1
里面,那么你可以像下面这样调用它
Class1.Insert(textBox1.Text, comboBox1.Text, comboBox2.Text, rBYes.Text, rBNo.Text,
pictureBox1.Image, richTextBox1.Text);
这是因为您在尝试调用Insert函数之前立即创建了一个名为Insert的变量。编译器正在查看变量并试图将其作为函数使用-在这种情况下不能这样做。
您实际上不需要创建Class1的实例-正如其他海报所说-因为Insert函数是静态的。
- 你的insert方法是一个静态方法。我觉得你应该把类名放在前面。
- 你的Insert-method有6个参数,但你试图推入7个参数
- 你的参数不都是字符串类型。一个是Image类型的