C# 异常错误处理
每当我想在我的航空公司预订系统项目中预订航班时,上图中就会出现此错误。我的代码中出现异常错误。此错误消息会弹出C# 异常错误处理,c#,asp.net,database,sql-server-2008,C#,Asp.net,Database,Sql Server 2008,每当我想在我的航空公司预订系统项目中预订航班时,上图中就会出现此错误。我的代码中出现异常错误。此错误消息会弹出 IndexOutOfRangeException不由用户代码处理 …我的代码是用c sharp在asp.net中编写的,有什么想法吗 这是密码 public partial class TICKET_BOOKING : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {
IndexOutOfRangeException不由用户代码处理
…我的代码是用c sharp在asp.net中编写的,有什么想法吗
这是密码
public partial class TICKET_BOOKING : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
int a;
String constring = ConfigurationManager.ConnectionStrings["conn"].ConnectionString.ToString();
public int Autonumber()
{
SqlConnection con = new SqlConnection(constring);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
con.Open();
cmd.CommandText = "select pid from pid";
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
DataTable dt = new DataTable();
da.SelectCommand = cmd;
da.Fill(dt);
a = Convert.ToInt32(dt.Rows[0][0].ToString()) + 1; //this is where its occuring
con.Close();
return a;
}
你的数据表中没有记录,所以下一步
dt.Rows[0][0]
失败了。在加入之前,请检查表是否有记录。诸如此类:
if(dt.Rows.Count > 0)
{
a = Convert.ToInt32(dt.Rows[0][0].ToString()) + 1;
}
试试这个
int a;
String constring = ConfigurationManager.ConnectionStrings["conn"].ConnectionString.ToString();
public int Autonumber()
{
using (SqlConnection con = new SqlConnection(constring))
{
SqlCommand cmd = new SqlCommand
{
CommandType = CommandType.Text,
Connection = con,
CommandText = "select pid from pid",
};
con.Open();
// cmd.Connection.Open();
using (var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
while (reader.Read())
{
if (!reader.IsDBNull(0))
a = reader.GetInt32(0);
}
}
return a;
}
}
我尝试了这个方法,虽然另一个错误是出现了违反主键约束“PK_Plist”的情况,但它似乎有效。无法在对象“dbo.Plist”中插入重复的键。我在那里重试了另一个错误ExecuteReader:尚未初始化连接属性。在执行当前web请求期间发生未处理的异常。请查看堆栈跟踪,以了解有关错误及其在代码中起源的详细信息。异常详细信息:System.InvalidOperationException:ExecuteReader:Connection属性尚未初始化。第31行:使用(var reader=cmd.ExecuteReader(CommandBehavior.CloseConnection))使用Connection=con编辑,请立即尝试。现在它告诉我SqlException未被用户处理。违反主键约束“PK_Plist”。无法在对象“dbo.Plist”中插入重复键。该语句已终止。当您尝试插入已存在的相同值(我们知道)时,会发生此错误主键冲突。但实际上您并没有插入任何记录,因为您正在查询“从pid中选择pid”。您使用的是相同的查询吗?这对我来说很好。