繁体   English   中英

使用SQL Server 2008的Winforms C#

[英]winforms C# using sql server 2008

private void fillcode()
{
    try
    {
        SqlConnection con = new SqlConnection("Data Source=ANISH;Initial Catalog=HM;Integrated Security=True");
        con.Open();
        string s = "select max(CustomerId) as Id from CustomerDetails";
        SqlCommand cmd = new SqlCommand(s, con);
        SqlDataReader dr = cmd.ExecuteReader();
        dr.Read();
        int i = Convert.ToInt16(dr["Id"].ToString());
        sid.Text = (i + 1).ToString();
        con.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

我正在使用此代码,但是如果我的表中没有数据,将无法接受,这是一个问题。 所以我想使用如果没有数据,则应将CustomerId设置为1

没有行将为NULL ,因此您可以:

"select isnull(max(CustomerId), 1) as Id from CustomerDetails"

您还应该查看为实现单一结果而设计的ExecuteScalar

这样尝试

private void fillcode()
{
    try
    {
        SqlConnection con = new SqlConnection("Data Source=ANISH;Initial Catalog=HM;Integrated Security=True");
        con.Open();
        string s = "select max(CustomerId) as Id from CustomerDetails";
        SqlCommand cmd = new SqlCommand(s, con);
        SqlDataReader dr = cmd.ExecuteReader();
        if(dr.Read())
        {
            int i = Convert.ToInt16(dr["Id"].ToString());
            sid.Text = (i + 1).ToString();
        }
        else
        {
            sid.Text = "1"
        } 
        con.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM