![](/img/trans.png)
[英]A field initializer cannot reference the non-static field, method, or property? .1
[英]Error - A field initializer cannot reference the non-static field, method, or property
我今天开始学习C#编程中的SQL连接。 我尝试了一些基本的操作,例如插入,删除等。
我想在另一个项目中尝试同样的事情,但是我遇到了问题。 因为它显示了我无法解决的错误:(
错误:
字段初始化器无法引用非静态字段,方法或属性“ Artikujt.Form1.con”。
这是我的代码(我刚刚开始将其与SQL中的数据库连接)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Artikujt
{
public partial class Form1 : Form
{
SqlConnection con = new SqlConnection(@"Data Source=TALY-PC;Initial Catalog=Katalogi;Integrated Security=True;Pooling=False");
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM tblArtikujt", con);
DataSet dsl = new DataSet();
public Form1()
{
InitializeComponent();
}
}
}
错误在此代码中的变量con
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM tblArtikujt", con);
我在SQL中(在Visual Studio中)创建了数据库。我还添加了数据源。 我做了我以前做的完全一样的事情....但是它不起作用:(
该错误正是它所说的。 不能使用con
在初始化da
,因为它只会一个实例创建过程中被创建。 您将需要将con
创建为static
或将初始化行放入构造函数中。
但是 ,实际上,您可能不应该这样做,因为您只是在要求某人打开SqlConnection
并将其保持打开状态。 您可能应该更多地使用using
块来创建连接的实践,以利用处置模式
静态的:
public partial class Form1 : Form
{
static SqlConnection con = new SqlConnection(@"Data Source=TALY-PC;Initial Catalog=Katalogi;Integrated Security=True;Pooling=False");
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM tblArtikujt", con);
DataSet dsl = new DataSet();
public Form1()
{
InitializeComponent();
}
或在构造函数中实例化:
public partial class Form1 : Form
{
SqlConnection con;
SqlDataAdapter da;
DataSet dsl;
public Form1()
{
InitializeComponent();
con = new SqlConnection(@"Data Source=TALY-PC;Initial Catalog=Katalogi;Integrated Security=True;Pooling=False");
da = new SqlDataAdapter("SELECT * FROM tblArtikujt", con);
dsl = new DataSet();
}
}
我会让你自己研究使用块
您必须将初始化代码放入构造函数中:
public partial class Form1 : Form
{
SqlConnection con = null;
SqlDataAdapter da = null;
DataSet dsl = null;
public Form1()
{
InitializeComponent();
con = new SqlConnection(@"Data Source=TALY-PC;Initial Catalog=Katalogi;Integrated Security=True;Pooling=False");
da = new SqlDataAdapter("SELECT * FROM tblArtikujt", con);
dsl = new DataSet();
}
}
您不能在字段初始化程序SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM tblArtikujt", con);
访问SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM tblArtikujt", con);
因为它不是静态的。 该错误不言自明。 问题与SQL不相关,它与c#有关,建议重新访问C#。
您需要将此初始化移到构造函数中。
SqlConnection con;
SqlDataAdapter da;
DataSet dsl;
public Form1()
{
InitializeComponent();
con = new SqlConnection(@"Data Source=TALY-PC;Initial Catalog=Katalogi;Integrated Security=True;Pooling=False");
da = new SqlDataAdapter("SELECT * FROM tblArtikujt", con)
dsl = new DataSet();
}
SqlDataAdapter da =新的SqlDataAdapter(“ SELECT * FROM tblArtikujt”,con); 在任何方法或事件内部使用,例如下面的示例按钮事件
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Artikujt
{
public partial class Form1 : Form
{
SqlConnection con = new SqlConnection(@"Data Source=TALY-PC;Initial Catalog=Katalogi;Integrated Security=True;Pooling=False");
DataSet dsl = new DataSet();
public Form1()
{
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM tblArtikujt", con);
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{ SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM tblArtikujt", con);
}
}
}
static SqlConnection con = new SqlConnection(@"Data Source=TALY-PC;Initial Catalog=Katalogi;Integrated Security=True;Pooling=False");
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM tblArtikujt", con);
DataSet dsl = new DataSet();
public Form1()
{
InitializeComponent();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.