App_Code/test.cs代码:
public class test
{
    public string id;
    public string city;
    public string cityNo;
public test()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
    public static bool insertCity(test t)
    {
        try
        {
            SqlConnection con = mssql.createCon();
            SqlCommand cmd = new SqlCommand("insert into Map values(@city,@cityNo);select @@identity as 'id'", con);
            cmd.Parameters.Add("@city", SqlDbType.NVarChar, 20);
            cmd.Parameters["@city"].Value = t.city;
            cmd.Parameters.Add("@cityNo", SqlDbType.NVarChar, 20);
            cmd.Parameters["@cityNo"].Value = t.cityNo;
            int Cid = Convert.ToInt32(cmd.ExecuteScalar());
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }
}
City.aspx.cs
    protected void Button1_Click(object sender, EventArgs e)
    {
        test t = new test();
        t.city = TextBox1.Text;
        t.cityNo = Cid;//如何在这里获得test.cs里的Cid?
        if (test.insertCity(t))
        {
            Response.Write("ok");
        }
        else
        {
            Response.Write("no");
        }

解决方案 »

  1.   

        SqlConnection con = mssql.createCon(); 
                SqlCommand cmd = new SqlCommand("insert into Map values(@city,@cityNo);select @@identity as 'id'", con); 
                cmd.Parameters.Add("@city", SqlDbType.NVarChar, 20); 
                cmd.Parameters["@city"].Value = t.city; 
                cmd.Parameters.Add("@cityNo", SqlDbType.NVarChar, 20); 
                cmd.Parameters["@cityNo"].Value = t.cityNo; 
                t.id = Convert.ToInt32(cmd.ExecuteScalar()); if (test.insertCity(t)) 
            { 
                string str=t.id;            Response.Write("ok"); 
            } 
      

  2.   

    那怎么做呢?
    我需要得到这个ID生成一个自定义的编号.
    这个自定义的编号也就是cityNo,需要在添加成功时就得到这个编号,并存入数据库.
      

  3.   

    我现在有个比较笨的办法,就是在if里写更新语句,这样不知道对不对,有更好的方法吗?SqlCommand com = new SqlCommand("update Map set cityNo=@strNo where id=@strID", con);
                    com.Parameters.Add("@strNo", SqlDbType.NVarChar, 10);
                    com.Parameters["@strNo"].Value = t.id;
                    com.Parameters.Add("@strID", SqlDbType.Int);
                    com.Parameters["@strID"].Value = t.id;
                    com.ExecuteNonQuery();