首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请问注释内加什么样的代码才能解决有关问题有关ListView

2012-02-01 
请教注释内加什么样的代码才能解决问题有关ListViewpublicvoidDelete_Load(objectsender,EventArgse){Data

请教注释内加什么样的代码才能解决问题有关ListView
public   void   Delete_Load(object   sender,   EventArgs   e)
                {
                        DataTable   dt   =   dbconn( "select   *   from   UserInformation ");
                      /*try
                        {
                                //for循环内首先获得数据库表中的数据,然后获得
                                //表中选中的数据单击修改后修改该数据的信息.关闭
                                //重新显示更新后的数据
                                for   (string   i   =   0;   i   <   dt.Rows;   i++)
                                {
                                       
                                        txt1.Text=   ;
                                        for   (string   j   =   0;   j   <   dt.Columns.Count;   j++)
                                        {
                                                txt1.Text   =   j.ToString(dt.Columns.Count[0]);
                                                txt2.Text   =   j.ToString(dt.Columns.Count[1]);
                                                txt3.Text   =   j.ToString(dt.Columns.Count[2]);
                                                txt4.Text   =   j.ToString(dt.Columns.Count[3]);

                                        }      
                                }
                        }
                        catch(exception   err)
                        {
                               
                        }


                        */
                }
                private   DataTable   dbconn(string   strsql)
                {
                        DataTable   dat   =   new   DataTable();
                        try
                        {
                               
                                SqlConnection   conn;
                                string   strconn   =   "Data   Surse=zl;Database=LED;Username=sa;pwd= ' ' ";
                                conn=new   SqlConnection   (strconn);
                                conn.Open();
                                SqlDataAdapter   da=new   SqlDataAdapter(strsql,conn);
                                da.Fill(dat);
                                conn.Close();
                               
                               
                        }
                        catch(Exception   err)
                        {
                                MessageBox.Show( "有错误 "   +   MessageBoxButtons.OK);
                        }
                        return   dat;
                  }
删除块的代码不知道该如何写~请教


[解决办法]
ListView 内留一个字段保存UserInformation的ID字段。
ListView加一个control 叫delete(CommandName设置为“delete”)
在出发ListView_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
的事件的时候写
switch (e.CommandName.ToString())

   case "delete "
DoDelete(到e里面拿ID)



private void DoDelete(int ID)
{
string sql = "delete from UserInformation where id = " + ID;
//用EnterpriseLibrary中对数据库操作的封装
 SqlHelper.Exec(Connection,sql);
}

EnterpriseLibrary中的SqlHelper类
// ===============================================================================


// Microsoft Data Access Application Block for .NET
// http://msdn.microsoft.com/library/en-us/dnbda/html/daab-rm.asp
//
// SQLHelper.cs
//
// This file contains the implementations of the SqlHelper and SqlHelperParameterCache
// classes.
//
// For more information see the Data Access Application Block Implementation Overview.
// ===============================================================================
// Release history
// VERSIONDESCRIPTION
// 2.0Added support for FillDataset, UpdateDataset and "Param " helper methods
//
// ===============================================================================
// Copyright (C) 2000-2001 Microsoft Corporation
// All rights reserved.
// THIS CODE AND INFORMATION IS PROVIDED "AS IS " WITHOUT WARRANTY
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR
// FITNESS FOR A PARTICULAR PURPOSE.
// ==============================================================================

using System;
using System.Data;
using System.Xml;
using System.Data.SqlClient;
using System.Collections;

namespace UnifiedUtility.DbAccess
{
/// <summary>
/// The SqlHelper class is intended to encapsulate high performance, scalable best practices for
/// common uses of SqlClient
/// </summary>
internal sealed class SqlHelper
{
#region private utility methods & constructors

// Since this class provides only static methods, make the default constructor private to prevent
// instances from being created with "new SqlHelper() "
private SqlHelper() { }

/// <summary>
/// This method is used to attach array of SqlParameters to a SqlCommand.
///
/// This method will assign a value of DbNull to any parameter with a direction of
/// InputOutput and a value of null.
///
/// This behavior will prevent default values from being used, but
/// this will be the less common case than an intended pure output parameter (derived as InputOutput)
/// where the user provided no input value.
/// </summary>
/// <param name= "command "> The command to which the parameters will be added </param>
/// <param name= "commandParameters "> An array of SqlParameters to be added to command </param>
private static void AttachParameters(SqlCommand command, SqlParameter[] commandParameters)
{
if (command == null) throw new ArgumentNullException( "command ");
if (commandParameters != null)
{
foreach (SqlParameter p in commandParameters)
{
if (p != null)
{
// Check for derived output value with no value assigned
if ((p.Direction == ParameterDirection.InputOutput ||
p.Direction == ParameterDirection.Input) &&
(p.Value == null))
{
p.Value = DBNull.Value;
}
command.Parameters.Add(p);
}
}
}
}

/// <summary>
/// This method assigns dataRow column values to an array of SqlParameters
/// </summary>
/// <param name= "commandParameters "> Array of SqlParameters to be assigned values </param>


/// <param name= "dataRow "> The dataRow used to hold the stored procedure 's parameter values </param>
private static void AssignParameterValues(SqlParameter[] commandParameters, DataRow dataRow)
{
if ((commandParameters == null) || (dataRow == null))
{
// Do nothing if we get no data
return;
}

int i = 0;
// Set the parameters values
foreach (SqlParameter commandParameter in commandParameters)
{
// Check the parameter name
if (commandParameter.ParameterName == null ||
commandParameter.ParameterName.Length <= 1)
throw new Exception(
string.Format(
"Please provide a valid parameter name on the parameter #{0}, the ParameterName property has the following value: '{1} '. ",
i, commandParameter.ParameterName));
if (dataRow.Table.Columns.IndexOf(commandParameter.ParameterName.Substring(1)) != -1)
commandParameter.Value = dataRow[commandParameter.ParameterName.Substring(1)];
i++;
}
}

/// <summary>
/// This method assigns an array of values to an array of SqlParameters
/// </summary>
/// <param name= "commandParameters "> Array of SqlParameters to be assigned values </param>
/// <param name= "parameterValues "> Array of objects holding the values to be assigned </param>
private static void AssignParameterValues(SqlParameter[] commandParameters, object[] parameterValues)
{
if ((commandParameters == null) || (parameterValues == null))
{
// Do nothing if we get no data
return;
}

// We must have the same number of values as we pave parameters to put them in
if (commandParameters.Length != parameterValues.Length)
{
throw new ArgumentException( "Parameter count does not match Parameter Value count. ");
}

// Iterate through the SqlParameters, assigning the values from the corresponding position in the
// value array
for (int i = 0, j = commandParameters.Length; i < j; i++)
{
// If the current array value derives from IDbDataParameter, then assign its Value property
if (parameterValues[i] is IDbDataParameter)
{
IDbDataParameter paramInstance = (IDbDataParameter)parameterValues[i];
if (paramInstance.Value == null)
{
commandParameters[i].Value = DBNull.Value;
}
else
{
commandParameters[i].Value = paramInstance.Value;
}
}
else if (parameterValues[i] == null)
{
commandParameters[i].Value = DBNull.Value;
}
else
{
commandParameters[i].Value = parameterValues[i];
}
}
}


热点排行