我正在按照项目的说明进行操作。 我很确定我遵循了所有说明,但我似乎遗漏了一些东西。也许它是我声明类的方式,因为这正是下划线所在的位置。今天才遇到SQL。
我不断收到这些错误:
*Field'ClassRegistrationQuery.sqlAdapter' 永远不会被赋值,并且它的默认值总是为 null
Field'ClassRegistrationQuery.sqlConnect' 永远不会被赋值,并且其默认值总是为 null
从未使用过“ClassRegistrationQuery.sqlReader”字段。*
以下是说明:
5. 创建一个名为 ClassRegistrationQuery 的类。在类内部,导入 System.Data.SqlClient、System.Data 和 System.Windows.Forms 见表 2 并声明需要什么
现在,该表表明访问修饰符对于 sqlConnection、Command、DataAdapter 和 DataReader 应该是私有的。还给出了变量名称。
6.转到 ClassRegistrationQuery 类的构造函数。执行以下操作: a.在获取ClassDB的Connection String时声明connectionString的值。 注意:在服务器资源管理器中右键单击数据库文件后,连接字符串位于属性中。
b.初始化SqlConnection并调用connectionString。示例:new SqlConnection(myConnectionString);
c.初始化数据表和绑定源
7. 声明一个名为 DisplayList() 的方法,该方法返回一个布尔值 true。
a.声明一个名为 ViewClubMembers 的字符串变量,并通过创建查询 Select 语句来设置该值。仅显示 ClubMembers 表中的 StudentId、FirstName、MiddleName、LastName、Age、Gender 和 Program。
b. 实例化 SqlAdapter 并调用 ViewClubMembers 和 sqlConnect 变量。
注意:不要忘记 SqlAdapter:SqlAdapter(string query, SqlConnection connect) 的参数。
c.添加以下代码:
i.dataTable.Clear();
ii.sqlAdapter.Fill(dataTable);
iii.bindingSource.DataSource = dataTable;
这是我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;
namespace SQLSelectInsertandUpdate{
public class ClassRegistrationQuery
{
private SqlConnection sqlConnect;
private SqlCommand sqlCommand;
private SqlDataAdapter sqlAdapter;
private SqlDataReader sqlReader;
private static string connectionString = "Data Source=MYPC;Initial Catalog = ClassDB; Integrated Security = True";
public DataTable dataTable;
public BindingSource bindingSource;
public string _FirstName, _MiddlesName, _LastName, _Gender, _Program;
public int _Age;
SqlConnection SC = new SqlConnection(connectionString);
DataTable DT = new DataTable();
BindingSource bs = new BindingSource();
public bool DisplayList()
{
string ViewClubMembers = ("select StudentID, FirstName, MiddleName, LastName, Age, Gender, Program * from ClubMemebrs");
SqlDataAdapter sd = new SqlDataAdapter(ViewClubMembers, SC);
dataTable.Clear();
sqlAdapter.Fill(dataTable);
bindingSource.DataSource = dataTable;
return true;
}
public bool RegisterStudent(int ID, long StudentID, string FirstName, string MiddleName, string LastName, int Age, string Gender, string Program)
{
sqlCommand = new SqlCommand("INSERT INTO ClubMembers VALUES(@ID, @StudentID, @FirstName, @MiddleName, @LastName, @Age, @Gender, @Program)", sqlConnect);
sqlCommand.Parameters.Add("@ID", SqlDbType.Int).Value = ID;
sqlCommand.Parameters.Add("@RegistrationID", SqlDbType.BigInt).Value = StudentID;
sqlCommand.Parameters.Add("@StudentID", SqlDbType.VarChar).Value = StudentID;
sqlCommand.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = FirstName;
sqlCommand.Parameters.Add("@MiddleName", SqlDbType.VarChar).Value = MiddleName;
sqlCommand.Parameters.Add("@LastName", SqlDbType.VarChar).Value = LastName;
sqlCommand.Parameters.Add("@Age", SqlDbType.Int).Value = Age;
sqlCommand.Parameters.Add("@Gender", SqlDbType.VarChar).Value = Gender;
sqlCommand.Parameters.Add("@Program", SqlDbType.VarChar).Value = Program;
sqlConnect.Open();
sqlCommand.ExecuteNonQuery();
sqlConnect.Close();
return true;
}
}
}