以下のC#コードを参考にしてください。コードの作業発見私は数値を使用しますが、私はK083271のような値を使用してコードをテストするとき、私は、エラーがある場合:パラメータ値を文字列からInt32に変換できませんでした。 C#
An exception of type 'System.FormatException' occurred in System.Data.dll but was not handled in user codeAdditional information: Failed to convert parameter value from a String to a Int32.
デバッグがusercount = 0
C#コード
using (SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["Molecular"].ConnectionString))
{
con.Open();
using (SqlCommand cmd = new SqlCommand(@"SELECT count(*)
from Patient where MBID = @SearchCriteria ", con))
{
cmd.Parameters.Add("@SearchCriteria", SqlDbType.Int).Value= Convert.ToString(txtSearchCriteria.Text);
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
int userCount = (Int32)cmd.ExecuteScalar();
da.Fill(dt);
if (userCount > 0)
{
using (SqlCommand cmd4 = new SqlCommand(@"SELECT *
from Patient where MBID = @SearchCriteria ", con))
{
int searchcriteria4 = int.Parse(txtSearchCriteria.Text);
cmd4.Parameters.AddWithValue("@SearchCriteria", searchcriteria4);
DataTable dt4 = new DataTable();
SqlDataAdapter da4 = new SqlDataAdapter(cmd4);
da4.Fill(dt4);
if (da4 != null)
{
GridViewClinicalPatientDetails.DataSource = dt4;
GridViewClinicalPatientDetails.DataBind();
}
}
return true;
}
else
{
Response.Write("<script>alert('Patient does not exist. Check Patient MBID')</script>");
txtSearchCriteria.Text = "";
return false;
}
}
あなたは 'int searchcriteria4 = int.Parse(txtSearchCriteria.Text);'という行について話していますか? K083271がどのように整数に解析されると思いますか? (ヒント:最初にそのテキストボックスを検証することはできません) –
何を期待していますか? intにリテラルを書くことはできません。 – NotTelling
''数値を使用したときにコードの検索が見つかりました... "' - 数値は数値ですが、数値以外の値は数値ではないためです。文字列を整数として解析する場合、その文字列は整数を表す必要があります。 – David