Hello.. below is my code to insert to sql server database. My problem is at the code that i highlight yellow. Can anyone help me..TQ in advance.
protected void imgbtnPTJ_Click(object sender, ImageClickEventArgs e)
{
using (SqlConnection conn = ClassConn.GetISOCon())
{
try
{
SqlCommand cmd = new SqlCommand("iso_ret_kodPTJ", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@kod_PTJ", SqlDbType.VarChar).Value = txtkodLocation.Text;
cmd.Parameters.Add("@siri_no", SqlDbType.VarChar).Value = txtSiriAudit.Text;
cmd.Parameters.Add("@kodprocess", SqlDbType.Int).Value = txtProcess.Text;
cmd.Parameters.Add("@kodsubprocess", SqlDbType.Int).Value = txtsubProcess.Text;
cmd.Parameters.Add("@kodclause", SqlDbType.Int).Value = txtclause.Text;
object returnCode = cmd.ExecuteScalar();
if (returnCode != null)
{
lblMsgPTJ.Text = "Pusat Tanggungjawab telah wujud..";
lblMsgPTJ.ForeColor = System.Drawing.Color.Red;
}
else
{
SqlCommand cmd2 = new SqlCommand("iso_ret_kodClause_insPTJ", conn);
cmd2.CommandType = CommandType.StoredProcedure;
cmd2.Parameters.Add("@siri_no", SqlDbType.VarChar).Value = txtSiriAudit.Text;
cmd2.Parameters.Add("@kod_subprocess", SqlDbType.Int).Value = txtsubProcess.Text;
SqlDataReader rdr = cmd2.ExecuteReader();
while (rdr.Read())
{
string[] kodClause;
kodClause = new string[rdr.FieldCount];
for (int i = 0; i < rdr.FieldCount; i++)
{
kodClause[i] = rdr[i].ToString();
// lblkodClause1.Text += rdr[i].ToString() + "</br>";
}
foreach (string kdC in kodClause) <-- i dont know where to put this code.. it give me error "There is already an open DataReader associated with this Command which must be closed first.
{
lblMsgPTJ.Text = "";
SqlCommand cmd1 = new SqlCommand("iso_ins_ptj", conn);
cmd1.CommandType = CommandType.StoredProcedure;
cmd1.Parameters.Add("@siri_no", SqlDbType.VarChar).Value = txtSiriAudit.Text;
cmd1.Parameters.Add("@kod_PTJ", SqlDbType.VarChar).Value = txtkodLocation.Text;
cmd1.Parameters.Add("@PTJdesc", SqlDbType.VarChar).Value = ddllocation.SelectedItem.Text;
cmd1.Parameters.Add("@kodprocess", SqlDbType.Int).Value = txtProcess.Text;
cmd1.Parameters.Add("@kodsubprocess", SqlDbType.Int).Value = txtsubProcess.Text;
cmd1.Parameters.Add("@kodclause", SqlDbType.Int).Value = txtclause.Text;
cmd1.Parameters.Add("@status", SqlDbType.Int).Value = 1;
cmd1.ExecuteNonQuery();
conn.Close();
}
}
}
}
finally
{
if (conn != null && conn.State == ConnectionState.Open)
{
conn.Close();
}
}
BindPTJ();
gvptj.Visible = true;
}
}