Weblogs Código

RecorteX

» csharp
73 usuarios y 243 recortes de código
Usuario

Contraseña
Crear cuenta
Estás viendo los recortes de la etiqueta csharp

RSS
Recortes: 25

Etiquetas relacionadas:
vbnet
xml
hilos
registro
aspnet
Javascript
service
c
web
js
splash
charp
win32
multithreading
sql
Explorer
net
Ajax
threading

Encontrar texto entre parentesis

Encontrar texto entre parentesis

 
  string output = txt.Split(new char[] { '(', ')' })[1];
 

SortableBindingList para Winforms

SortableBindingList para Winforms

hay que agregar el evento ColumnHeaderMouseClick al dataGridView

 
        private void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            SortOrder order = this.dataGridView1.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection;
            ListSortDirection _direction = (order == SortOrder.Descending) ? ListSortDirection.Descending : ListSortDirection.Ascending;
            this.dataGridView1.Sort(dataGridView1.Columns[e.ColumnIndex], _direction);
        }
 

Y la lista que usemos será la SortableBindingList del objeto

 
      public class SortableBindingList<T> : BindingList<T>
    {
        private ArrayList sortedList;
        private bool isSortedValue;
 
        public SortableBindingList()
        {
        }
 
        public SortableBindingList(IList<T> list)
        {
            foreach (object o in list)
            {
                this.Add((T)o);
            }
        }
 
        protected override bool SupportsSortingCore
        {
            get { return true; }
        }
 
 
        protected override bool IsSortedCore
        {
            get { return isSortedValue; }
        }
 
        ListSortDirection sortDirectionValue;
        PropertyDescriptor sortPropertyValue;
 
        protected override void ApplySortCore(PropertyDescriptor prop,
            ListSortDirection direction)
        {
            sortedList = new ArrayList();
 
            Type interfaceType = prop.PropertyType.GetInterface("IComparable");
 
            if (interfaceType == null && prop.PropertyType.IsValueType)
            {
                Type underlyingType = Nullable.GetUnderlyingType(prop.PropertyType);
 
                if (underlyingType != null)
                {
                    interfaceType = underlyingType.GetInterface("IComparable");
                }
            }
 
            if (interfaceType != null)
            {
                sortPropertyValue = prop;
                sortDirectionValue = direction;
 
                IEnumerable<T> query = base.Items;
                if (direction == ListSortDirection.Ascending)
                {
                    query = query.OrderBy(i => prop.GetValue(i));
                }
                else
                {
                    query = query.OrderByDescending(i => prop.GetValue(i));
                }
                int newIndex = 0;
                foreach (object item in query)
                {
                    this.Items[newIndex] = (T)item;
                    newIndex++;
                }
                isSortedValue = true;
                this.OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, -1));
 
            }
            else
            {
                throw new NotSupportedException("Cannot sort by " + prop.Name +
                    ". This" + prop.PropertyType.ToString() +
                    " does not implement IComparable");
            }
        }
 
        protected override PropertyDescriptor SortPropertyCore
        {
            get { return sortPropertyValue; }
        }
 
        protected override ListSortDirection SortDirectionCore
        {
            get { return sortDirectionValue; }
        }
 
    }
 

Redirect and Post in asp.net

Algo como Response.Redirect, pero para metodos post en vez de get

 
public static void RedirectAndPOST(Page page, string destinationUrl, NameValueCollection data)
{
//Prepare the Posting form
string strForm = PreparePOSTForm(destinationUrl, data);
//Add a literal control the specified page holding 
//the Post Form, this is to submit the Posting form with the request.
page.Controls.Add(new LiteralControl(strForm));
}
 
private static String PreparePOSTForm(string url, NameValueCollection data)
{
    //Set a name for the form
    string formID = "PostForm";
    //Build the form using the specified data to be posted.
    StringBuilder strForm = new StringBuilder();
    strForm.Append("<form id=\"" + formID + "\" name=\"" + 
                   formID + "\" action=\"" + url + 
                   "\" method=\"POST\">");
 
    foreach (string key in data)
    {
        strForm.Append("<input type=\"hidden\" name=\"" + key + 
                       "\" value=\"" + data[key] + "\">");
    }
 
    strForm.Append("</form>");
    //Build the JavaScript which will do the Posting operation.
    StringBuilder strScript = new StringBuilder();
    strScript.Append("<script language='javascript'>");
    strScript.Append("var v" + formID + " = document." + 
                     formID + ";");
    strScript.Append("v" + formID + ".submit();");
    strScript.Append("</script>");
    //Return the form and the script concatenated.
    //(The order is important, Form then JavaScript)
    return strForm.ToString() + strScript.ToString();
}
 

Serializar y deserializar a xml cualquier objeto

 
//Serializar a XML (UTF-8) un objeto cualquiera 
//Create our own namespaces for the output
//Add an empty namespace and empty value
                ns.Add("", ""//Deserializar un XML a un objeto T 
 

Cambiar de string a byte[] de byte[] a string

 
static byte[] GetBytes(string str)
{
    byte[] bytes = new byte[str.Length * sizeof(char)];
    System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
    return bytes;
}
 
static string GetString(byte[] bytes)
{
    char[] chars = new char[bytes.Length / sizeof(char)];
    System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
    return new string(chars);
}
 

Web Reference dinamico C# VS2010

Me topé con el problema siguiente.

Yo hice un producto (web service) que dependia de un web service previamente instalado (Creado por otro desarrollador en otro momento) que es prerequisito de mi webservice.

El chiste es que lo habia tomado de un url, pero cuando cambió al reconfigurar el web.config no tomo el cambio ya que se habia quedado hardcoded.

aparte de hacer lo de la siguiente solucion:
http://www.codeproject.com/Articles/12317/How-to-make-your-Web-Reference-proxy-URL-dynamic
lo que hice fue agregarle este codigo en Resources.cs (Codigo autogenerado).

WEB.CONFIG

 
<?xml version="1.0"?>
<configuration>
  ...
  <appSettings>
    ...
    <add key="LLAVE" value="http://servidor/carpeta/webservice.dll/soap/IProceso"/>
    ...
  </appSettings>
</configuration>
 

REFERENCE.CS

 
 
        protected static string GetApplicationSettings(string sKey)
        {
            string sValue = null;
            //check if the AppSettings section has items
            if (System.Web.Configuration.WebConfigurationManager.AppSettings.Count > 0)
            {
                sValue = System.Web.Configuration.WebConfigurationManager.AppSettings[sKey];
            }
            return sValue;
        }
 
        /// <remarks/>
        public IProcesosWSservice() {
            string TressProcesos = GetApplicationSettings("LLAVE");
            this.Url = TressProcesos;
            if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
                this.UseDefaultCredentials = true;
                this.useDefaultCredentialsSetExplicitly = false;
            }
            else {
                this.useDefaultCredentialsSetExplicitly = true;
            }
        }
 

Una clase para simular (en parte) el objeto My de Visual Basic 2005

Una clase para simular (en parte) el objeto My de Visual Basic 2005

 
// Una clase para simular (en parte) el objeto My de Visual Basic 2005
static class My
{
    public static Properties.Settings Settings
    {
        get
        {
            return Properties.Settings.Default;
        }
    }
}
 

Remover declaracion de xml

xml es XmlDocument

 
foreach(XmlNode n in xml.ChildNodes)
{ 
    if (n.NodeType == XmlNodeType.XmlDeclaration)
       n.ParentNode.RemoveChild(n);
}
 

Ejemplo sencillo Ajax - Invocación y recogida de datos

Con este ejemplo se puede hacer una invocación a funciones que estén en otro fichero utilizando Ajax. En este ejemplo se asocia al evento onBlur de un campo de texto la llamada Ajax dentro de un javascript.
De esta forma el código que esta en cliente abre un canal al servidor y ejecuta el código que haya en el y lo devuelve


//Este es el código que va en cliente
<html>
<head>
<title>Prueba tarifas AJAX</title>
</head>
<body>
CampoTexto<input type="text" id="texto" onblur="calcula()" value="2007"><br/>
</html>
 
<script>
//Este es el código que va en cliente
 
function calcula()
{
// Obtener la instancia del objeto XMLHttpRequest
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
	http_request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) { // Internet Explorer
	http_request = new ActiveXObject("Microsoft.XMLHTTP");
	}
	// Preparar la funcion de respuesta
	http_request.onreadystatechange = muestraContenido;
 
	//////////////////////////////////////////////////////////////////////
	// Realizar peticion HTTP/////////////////////////////////////////////
	
	var url = '/public/api/utilTarifas.aspx?cod='+document.getElementById('texto').value;
	
	//////////////////////////////////////////////////////////////////////
	http_request.open('GET', url, true);
	http_request.send(null);
	
function muestraContenido()
	{	
	if(http_request.readyState == 4)
		{
		if (http_request.status == 200) 
			{				
				var documento=http_request.responseText;
				//////////////////////////////////////////////////////////////////////
				// TRATAMOS LA RESPUESTA/////////////////////////////////////////////				
				
				if (documento !='Error')				
				{				
					alert(documento );
				}
				//////////////////////////////////////////////////////////////////////
			}	
		}	
	}
}
</script>
 

//Este puede ser el codigo invocado en otra página, en este caso con extensión aspx y que va en el servidor

 
<%@ Page Language="c#"%>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb"%>
<%@ import Namespace="System.Web" %>
<%@ import Namespace="System" %>
<%@ import Namespace="System.Net" %>
 
 
<%
try{
String codigo= Request.QueryString["cod"];
String tarifas="";
if(codigo='2007')
  tarifas="1,2,3,4,5";
else 
 tarifas="6,7,8,9,10";
 
 
//Ejecutas tu consulta de BBDD y la devuelves en el string 
//Este ejemplo sencillo devuelve una serie de valores
 
Response.Write(tarifas);
}
catch(Exception e)
{
//Response.Write(e);
Response.Write("Error");
}
%>
 

Traer un DT desde un query en SqlServer

 
    Private Function getDT(ByVal qry As String, ByVal connectionString as string) As DataTable
        Dim dataSet As DataSet = New DataSet
        Dim conn As New SqlConnection(connectionString)
        Dim cmdString As String = qry
        Dim dataAdapter As New SqlDataAdapter(cmdString, conn)
        Dim ds As New DataSet()
        dataAdapter.Fill(ds, "dt")
 
        Return ds.Tables("dt")
    End Function
 
 
    private DataTable getDT(String qry, String  connectionString)
    {
        DataSet dataSet = new DataSet();
        SqlConnection conn = new SqlConnection(connectionString);
        SqlDataAdapter dataAdapter = new SqlDataAdapter(qry, conn);
        DataSet ds= new DataSet();
        dataAdapter.Fill(ds, "dt");
  
        return ds.Tables ["dt"];
    }
 
Proyecto: Juanjo Navarro, 2006 - Diseño: Albin