Hola compañeros. A ver cuento, soy nuevo en POO y por lo tanto en C# tambien.
Con lo que he encontrado un problema en parte de una aplicación y es que intentando copiar parte de un string en otro me dice que el string destino es de sólo escritura.. y lo que hago es lo siguiente. Este es el código del método:
public int MaxID(string tableName)
{
string IDname = "";
DB EcnaDB = new DB();
string Info = String.Empty;
for (int i = 0; i < tableName.Length - 1; i++)
{
if (tableName[i] == '.')
{
for (int j = i, k = 0; j < tableName.Length - 1; j++, k++)
{
IDname[k] = tableName[j]; //aqui me da el error//
}
}
}
Cmd = "select ID" + IDname + " from dbo." + tableName + " where Nombre = 'Contador'";
using (SqlConnection conn = EcnaDB.OpenConnection(Server))
{
SqlDataReader reader = EcnaDB.ReadDB(Cmd, conn);
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
Info += reader.GetValue(i).ToString();
}
}
}
return Int32.Parse(Info);
}
En el for más anidado donde pongo el comentario //aqui me da el error// me suelta lo siguiente:
Error 1 No se puede asignar la propiedad o el indizador 'string.this[int]' (es de sólo lectura)
Espero que puedan ayudarme porque es de las tipicas tonterias que uno hace y no es capaz de darse cuenta y desquician bastante... ¬¬
Un saludo y gracias!
Lo que ocurre es que si bien puedes acceder a los caracteres de un String como si se tratase de un array, no puedes asignar sus valores del mismo modo, y es lo que intentas hacer con el IDname[k]
Saludos
aaa vaaale ok! muchisimas gracias! es que estoy acostumbrado a C y pense que aqui era igual... y de que modo podría hacer esto? porque es algo que claramente hay que hacer a mano, dado que lo que pretendo es quitar unos caracteres que hay al inicio de una palabra, y me temo que la clase string no ofrece ningún método que haga esto..
muchas gracias!
IndexOf junto a Substring o Remove sería lo mejor para no recorrer caracter a caracter como lo estas haciendo :P
Sino puedes hacer uso de Stringbuilder, o simplemente concatenar caracteres :P
Saludos
Ok! muchisimas gracias por la informacion! voy a probar y ya cuento como ha salido!
muchas gracias en serio! un saludo! :) :)
perfecto! ya lo he conseguido! ;-) ;-) muchas gracias, porque andaba pillado y confundido por el clásico C... en serio muchas gracias! un saludo! :D
Todos empezamos alguna vez :P
Saludos