我已經遇到了以下錯誤:連接的當前狀態是打開錯誤
The Connection was not closed. The Connection's current state is open Invalid attempt to call MetaData when reader is closed.
我嘗試這樣做:
while(dr.Read()){//and set value}
,但它不工作。這是如何在其他一些可行的形式中完成的。
當我在我的應用程序中按Enter鍵時運行此代碼。當我第一次按下它時,會顯示錯誤信息,但是當我再次按Enter時,使用相同的數據,它會起作用。
try
{
SqlCommand cmd = new SqlCommand("selectknittingdaily", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@m_id", SqlDbType.Int).Value = Convert.ToInt32(txt_id.Text);
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
if (dr.HasRows)
{
dateTimePicker1.Text = dr[0].ToString();
textBox1.Text = dr[1].ToString();
machineno_combo.Text = dr[2].ToString();
guage_combo.Text = dr[3].ToString();
gsm_combo.Text = dr[4].ToString();
count_combo.Text = dr[5].ToString();
color_combo.Text = dr[6].ToString();
supplier_combo.Text = dr[7].ToString();
txt_rollsfrom.Text = dr[8].ToString();
txt_rollsto.Text = dr[9].ToString();
txt_rolls.Text = dr[10].ToString();
txt_totalweight.Text = dr[11].ToString();
quality_combo.Text = dr[12].ToString();
txt_cotton.Text = dr[13].ToString();
txt_polyster.Text = dr[14].ToString();
txt_elasthan.Text = dr[15].ToString();
txt_modal.Text = dr[16].ToString();
txt_tensil.Text = dr[17].ToString();
txt_organic.Text = dr[18].ToString();
border_combo.Text = dr[19].ToString();
}
dr.Close();
//con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
Here Is My Sql Stored Procedure
create proc selectknittingdaily
@m_id int
as
begin
select master_knittingdaily.date2,master_order.program_no,machine.machine_no,machine.guage,
machine.gsm,yarn.yarn_count,(select color.color_no from yarn LEFT JOIN color on yarn.color_id=color.color_id
where yarn.yarn_id=(select yarn_id from master_knittingdaily where [email protected]_id))
,(select supplier_knitting.supplier_name from yarn LEFT JOIN supplier_knitting on
yarn.supplier_id=supplier_knitting.supplier_id
where yarn.yarn_id=(select yarn_id from master_knittingdaily where [email protected]_id))
,master_knittingdaily.rolls_from,
master_knittingdaily.rolls_to,master_knittingdaily.total_rolls,master_knittingdaily.total_weight,
quality_knitting.quality_code,quality_knitting.cotton,quality_knitting.polyster,quality_knitting.elasthan,
quality_knitting.modal,quality_knitting.tensil,quality_knitting.organic,master_knittingdaily.border
from master_knittingdaily
LEFT JOIN master_order on master_knittingdaily.order_id=master_order.order_id
LEFT JOIN machine on master_knittingdaily.machine_id=machine.machine_id
LEFT JOIN yarn on master_knittingdaily.yarn_id=yarn.yarn_id
LEFT JOIN quality_knitting on master_knittingdaily.quality_id=quality_knitting.quality_id
where [email protected]_id
end
請,張貼堆棧跟蹤。或者至少向我們展示引發錯誤的行。 –
這向我強烈建議您試圖跨多個方法共享單個連接對象。不要這樣做。在每個需要連接的地方創建一個新的連接對象比較安全,打開它,使用它並關閉它。讓框架執行連接池魔術並在後臺維護正確數量的實際連接。 –
現在看到我的過程 – user2491383