110,502
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 绑定BOM
/// </summary>
/// <param name="tvwBOM">绑定BOM的TreeView控件</param>
/// <param name="chpPTNB">成品料号</param>
public void BindBOM(TreeView tvwBOM, string chpPTNB)
{
try
{
tvwBOM.Nodes.Clear();//清除所有的节点
List<TreeNode> allBOMItems = new List<TreeNode>();//存放所有的BOM节点
TreeNode root = new TreeNode(chpPTNB, chpPTNB);//创建根节点
root.Expanded = true;//默认展开
tvwBOM.Nodes.Add(root);//添加根节点
allBOMItems.Add(root);//保存根节点
using (SqlConnection con = new SqlConnection(Common.connectionString))
{
for (int i = 0; i < allBOMItems.Count; i++)//添加所有的BOM节点
{
string parentPTNB = allBOMItems[i].Value;//获取父节点的值
string sql = "select childPTNB,childPTNB+'*'+convert(nvarchar(20),qtty)+useUnit as text from bom where parentPTNB=@parentPTNB";//查询子节点料号信息
SqlDataReader sdr = GetDataReader(sql, con, new SqlParameter("@parentPTNB", parentPTNB));
if (sdr != null)
{
while (sdr.Read())
{
TreeNode tn = new TreeNode(sdr["text"].ToString(), sdr["childPTNB"].ToString());//创建子节点
tn.Expanded = true;//默认展开
allBOMItems[i].ChildNodes.Add(tn);//添加子节点
allBOMItems.Add(tn);//保存子节点
}
sdr.Close();
}
}
}
}
catch
{
//TODO
}
}
#region 代码生成器生成的
/// <summary>
/// 执行查询语句,返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
/// </summary>
/// <param name="strSQL">查询语句</param>
/// <returns>SqlDataReader</returns>
public SqlDataReader GetDataReader(string SQLString, SqlConnection conn,params SqlParameter[] cmdParms)
{
SqlCommand cmd = new SqlCommand();
try
{
PrepareCommand(cmd, conn, SQLString, cmdParms);
SqlDataReader myReader = cmd.ExecuteReader();
cmd.Parameters.Clear();
return myReader;
}
catch (Exception ex)
{
WriteError(ex.Message);
return null;
}
}
private void PrepareCommand(SqlCommand cmd, SqlConnection conn, string cmdText, SqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
cmd.CommandType = CommandType.Text;
if (cmdParms != null)
{
foreach (SqlParameter parameter in cmdParms)
{
if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
(parameter.Value == null))
{
parameter.Value = DBNull.Value;
}
cmd.Parameters.Add(parameter);
}
}
}
#endregion