我是C#和编程新手......
当表单加载主键必须自动加载到comboBox并且它必须从最后一个值自动生成+1时...例如,如果COUNT
值为0,那么它必须像这样添加EMP01
这是我的代码:
class PrimaryKeyIncrement
{
public void empPrimary() {
Dbconnection ObjDb = new Dbconnection();
ObjDb.ConnectWithDB();
string empPri = "SELECT COUNT(EmployeeID) AS PK FROM Employees";
SqlCommand Pri = new SqlCommand(empPri, ObjDb.conct);
SqlDataReader rd = Pri.ExecuteReader();
if(rd.Read()){
string pk = rd["PK"].ToString();
int IC = Int32.Parse(pk);
IC++;
string empPK = ("EMP")+IC.ToString();
EmployeesManager EM = new EmployeesManager();
EM.cmbEmployeeID.Items.Add(empPK).ToString();
}
}
我在EmployeesManager Form loading中调用了empPrimary()方法。 comboBox中没有任何错误但没有加载
请帮助我使用String EMP将主键增加一个
答案 0 :(得分:1)
您遇到问题的实际原因是您要添加新 EmployeeManager的组合框。您需要将对表单的引用传递到EmpPrimary
... EmpPrimary(this); //in your forms form load
public void empPrimary(EmployeeManager form){ //change the method parameters
form.cmbEmployeeID.Items.Add(empPK); // Now use the form reference in method
正如plutonix所说,你应该让表格处理PK本身
答案 1 :(得分:-1)
string empPK = ("EMP")+IC.ToString(); // "EMP1"
string empPK = ("EMP")+IC.ToString("00"); // "EMP01"
用于处理varchars的自动增量,使用表来映射对象类和整数位。
AutoNumber([Type],[nextInt],[prefix])
'Employee',1,'EMP'
'Sales',0,'INV'
创建一个函数来检索新Empoyee的下一个值(在您的情况下)
SELECT getAuto('Employee') // will return 'EMP01'
然后创建一个过程,在添加新员工后自动增加nextInt
表的AutoNumber
值