C# _详细信息,其中Emp_ID=@EmpID”; 正在使用(SqlConnection cn2=新的SqlConnection(databaseConnectionString)) 使用(SqlCommand cmd_Phone=newsqlcommand(sql_Phone,cn2)) { cmd_Phone.Parameters.Add(“@EmpID”,SqlDbType.Int); cn2.Open(); while(dr_SignUp.Read()) { List arrPhone=新列表(); cmd_Phone.Parameters[0]。Value=dr_SignUp[“Emp_ID”]; 使用(SqlDataReader dr_Phone=cmd_Phone.ExecuteReader()) { while(dr_Phone.Read()) { arrPhone.Add(dr_Phone[“Phone_Number”].ToString()); } }
此外,查看您的代码,我怀疑您真正需要做的是重新编写sql。您可以将所有这些合并到一个查询中,直接绑定到网格。因此,这是不可能的!如此简单,这是唯一的答案 多连接是一种解决方法C# _详细信息,其中Emp_ID=@EmpID”; 正在使用(SqlConnection cn2=新的SqlConnection(databaseConnectionString)) 使用(SqlCommand cmd_Phone=newsqlcommand(sql_Phone,cn2)) { cmd_Phone.Parameters.Add(“@EmpID”,SqlDbType.Int); cn2.Open(); while(dr_SignUp.Read()) { List arrPhone=新列表(); cmd_Phone.Parameters[0]。Value=dr_SignUp[“Emp_ID”]; 使用(SqlDataReader dr_Phone=cmd_Phone.ExecuteReader()) { while(dr_Phone.Read()) { arrPhone.Add(dr_Phone[“Phone_Number”].ToString()); } },c#,sql-server,C#,Sql Server,此外,查看您的代码,我怀疑您真正需要做的是重新编写sql。您可以将所有这些合并到一个查询中,直接绑定到网格。因此,这是不可能的!如此简单,这是唯一的答案 多连接是一种解决方法 一个连接不能同时处理多个记录集您也可以将MultipleActiveResultSets=True;添加到连接字符串中,即使不建议这样做。这不是一个答案,更像是一个注释,而且提问者也不关心多个连接。 <add key="Conn" value="Data Source=MNTCON016; Database=Over
一个连接不能同时处理多个记录集您也可以将MultipleActiveResultSets=True;添加到连接字符串中,即使不建议这样做。这不是一个答案,更像是一个注释,而且提问者也不关心多个连接。
<add key="Conn" value="Data Source=MNTCON016; Database=Overtime_Calculator;Trusted_Connection=True;MultipleActiveResultSets=true" />
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();
}
}
}
public void SignUpControllerDay()
{
using (var conn = new SqlConnection(ConnectionString))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "SELECT ...";
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
var phone = reader["Phone_Number"].ToString();
Bar(phone);
}
}
}
}
public void Bar(string phone)
{
using (var conn = new SqlConnection(ConnectionString))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "SELECT ..."; // use phone to prepare statement
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
// Fill the grid
}
}
}
}
string sql_Phone = "SELECT Phone_Number FROM Contact_Details WHERE Emp_ID = @EmpID";
using (SqlConnection cn2 = new Sqlconnection(databaseConnectionString))
using (SqlCommand cmd_Phone = new SqlCommand(sql_Phone, cn2))
{
cmd_Phone.Parameters.Add("@EmpID", SqlDbType.Int);
cn2.Open();
while (dr_SignUp.Read())
{
List<string> arrPhone = new List<string>();
cmd_Phone.Parameters[0].Value = dr_SignUp["Emp_ID"];
using (SqlDataReader dr_Phone = cmd_Phone.ExecuteReader())
{
while (dr_Phone.Read())
{
arrPhone.Add(dr_Phone["Phone_Number"].ToString());
}
}