मैं .net ढांचे पर सी शार्प में एक विनफॉर्म एप्लिकेशन विकसित कर रहा हूं। डेटाबेस स्ट्रिंग मैं अब के रूप में उपयोग कर रहा हूँएकाधिक डेटा रीडर का उपयोग
<add key="Conn" value="Data Source=MNTCON016; Database=Overtime_Calculator;Trusted_Connection=True;MultipleActiveResultSets=true" />
मैं विकास के लिए माइक्रोसॉफ्ट SQL सर्वर 2005 के रूप में उपयोग कर रहा हूँ है, मैं 2 डेटा पाठकों को एक साथ जैसा कि ऊपर उल्लेख सच करने के लिए MultipleActiveResultSets संपत्ति का उपयोग कर उपयोग कर सकते हैं।
public static void SignUpControllerDay(DateTime Date, System.Windows.Forms.DataGridView PassedGrid)
{
string sql_SignUp = String.Format(@"SELECT Emp_ID as Emp_ID, Name as Name, Sum(Sum) as Sum FROM
(SELECT DISTINCT o.Date, e.Emp_ID as Emp_ID,
e.First_Name+ ' ' +e.Last_Name as Name,
o.Quantity as Sum
FROM Employee e,OT_Hours o,Position p,Signup_Sheet s
WHERE e.Emp_ID=o.Emp_ID
and e.Emp_ID = s.Employee_ID
and s.Day_Shift = 1
and e.Position_ID = p.Position_ID
and p.Position_Name = 'Controller'
and o.Quantity NOT IN(0.3)
and s.Date = '{0}'
and o.Date <= CONVERT(VARCHAR,'{0}',101) AND o.Date > CONVERT(VARCHAR,DATEADD(YYYY,-1,'{0}'),101))
as OVERTIME
GROUP BY Emp_ID,Name
ORDER BY Sum", Date);
SqlConnection sqlConn = null;
SqlCommand cmd_SignUp;
SqlDataReader dr_SignUp;
try
{
sqlConn = new SqlConnection(databaseConnectionString);
sqlConn.Open();
cmd_SignUp = new SqlCommand(sql_SignUp, sqlConn);
dr_SignUp = cmd_SignUp.ExecuteReader();
while (dr_SignUp.Read())
{
ArrayList arrPhone = new ArrayList();
string sql_Phone = String.Format("SELECT Phone_Number FROM Contact_Details WHERE Emp_ID = {0}", dr_SignUp["Emp_ID"]);
SqlCommand cmd_Phone = new SqlCommand(sql_Phone, sqlConn);
SqlDataReader dr_Phone = cmd_Phone.ExecuteReader();
while (dr_Phone.Read())
{
arrPhone.Add(dr_Phone["Phone_Number"].ToString());
}
//--Retrieving Sectors
ArrayList arrSector = new ArrayList();
string sql_Sector = String.Format(@"SELECT e1.EMP_ID,
(SELECT cast(Sector_ID as varchar(10)) + ';'
FROM Employee_Sector_relationship e2
WHERE e2.Emp_ID = e1.Emp_ID
ORDER BY Sector_ID
FOR XML PATH('')) AS Sectors
FROM Employee_Sector_Relationship e1
WHERE Emp_ID = {0}
GROUP BY Emp_ID ", dr_SignUp["Emp_ID"]);
SqlCommand cmd_Sector = new SqlCommand(sql_Sector, sqlConn);
SqlDataReader dr_Sector = cmd_Sector.ExecuteReader();
while (dr_Sector.Read())
{
arrSector.Add(dr_Sector["Sectors"].ToString());
}
if (arrSector.Count == 0)
{ arrSector.Add(" "); }
if (arrPhone.Count == 0)
{ arrPhone.Add(" "); }
//--
if (arrPhone.Count == 2)
{
PassedGrid.Rows.Add(dr_SignUp["Emp_ID"].ToString(), dr_SignUp["Name"].ToString(), arrSector[0], dr_SignUp["Sum"], arrPhone[0], arrPhone[1]);
}
else
{
PassedGrid.Rows.Add(dr_SignUp["Emp_ID"].ToString(), dr_SignUp["Name"].ToString(), arrSector[0], dr_SignUp["Sum"], arrPhone[0]);
}
}
}
catch (Exception e)
{
MessageBox.Show("Error found in SignUpControllerDay..." + Environment.NewLine + e.ToString());
}
finally
{
if (sqlConn != null)
{
sqlConn.Close();
}
}
}
सब कुछ ठीक काम करता है:
2 डेटा पाठकों आह्वान करने के लिए इस्तेमाल किया विधि इस प्रकार है। अब असली समस्या है। मुझे सूचित किया गया है कि एप्लिकेशन के लिए उत्पादन SQL सर्वर माइक्रोसॉफ्ट एसक्यूएल सर्वर 2000 है। थोड़ा सा शोध करने के बाद, मुझे पता चला कि माइक्रोसॉफ्ट सर्वर 2000 कई सक्रिय परिणाम सेट प्रोपरी का समर्थन नहीं करता है। संक्षेप में, यह मुझे एक साथ 2 डेटा पाठकों का उपयोग करने की अनुमति नहीं देता है।
मैं वहाँ किसी भी अन्य तरीके कि मैं डेटा पढ़ सकते हैं के रूप में मैं कोड में उल्लेख किया है कर रहे हैं एसक्यूएल सर्वर 2000
करने के लिए, पता करने के लिए, 2 अलग तालिका से डेटा को पढ़ने के लिए कैसे एक साथ की जरूरत संबंध ..
कृपया मदद करें .. आवेदन लगभग पूरा हो गया है और उत्पादन के लिए तैयार है। लेकिन एमएस सर्वर 2000 does not को applcaition तदनुसार काम करने की अनुमति ...
कृपया मदद
यह एक जवाब है, और अधिक एक टिप्पणी की तरह अनुकूल नहीं है, और यह भी सवाल का प्रश्नकर्ता कई कनेक्शन के बारे में देखभाल din't। – whihathac