|
Calm down. Like others, I have read your original post and don't really understand what you are asking for. Now, I appreciate that you aren't a native English speaker, so the terms you are using might not be exactly what you think they mean. When you talk about previous open, are you talking about a form that has been closed and that you are loading again? Is it a window that's already open and you have Control-Tabbed to get to it?
This space for rent
|
|
|
|
|
I think - but I'm not sure - that he is processing a file and then when his code tries to do something with it again, it locks up. If so, Nathan is probably right that he isn't closing and disposing of streams / handles but without relevant code...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
What he means is that all of the individual words make sense: it's when you put them together as a question it isn't understandable!
Please, remember that we can't see your screen, access your HDD, or read your mind - we only get exactly what you tell us to work with. I can get some bits from it - you have a WinForms app that seems to get stuck when you do something with files, but we don't know what you are doing with them, or how you are doing it in your code. So we ask for clarification - because we are trying to understand your problem in enough detail to help you!
We understand that English may not be your first language, and we are trying to work with you here - but we can't sort out a problem if we don't understand the question!
As a suggestion, try typing the question in your native language with a good level of detail and use Google Translate to convert it - it may make more sense to us that way!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
What?!
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
Are only 2 people.
#1 Who pretend it's GURU.
#2 SHE ,HE it's GURU.
In Forum 99% pretend are GURU.
|
|
|
|
|
|
Make sure to dispose of your file streams when you've used them. You're probably leaving dangling handles all over the place. Sort of like an acrobat, but it's more of an abstract reference.
|
|
|
|
|
There's probably something wrong in the Multi-channelled neutral superstructure or the Secured zero tolerance framework. You need to reset the Switchable discrete superstructure to fix it.
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
Yup and that makes as much sense as the op, you must be the one real guru!
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
It's all in the wrist.
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
Hello,
I wrote a program in C# using VS2010 that has a media page that pulls videos from You Tube. It worked perfectly until this morning. Today, all I get is a blank screen. Even if I get straight to the basics and hard code a movie file into the properties menu, all I get is a blank screen. The only thing that I can see that might have happened is that the program did the newest Windows update (Windows 10) last night automatically. To check this theory, I had a previous version of the application on my laptop that also runs Windows 10 .... so I checked it out and my older version of the same app running on the not updated Windows computer works perfectly. It seems that Windows 10 has destroyed something in the Flash support, maybe the Flash.ocx file? I really don't know. I was supposed to launch this application at the end of this week, so this is a major issue now. I don't know how to repair this. Appreciate any help. Thank You, Pat.
|
|
|
|
|
You made a HUGE mistake by relying on Flash. Flash is dying, fast. YouTube's default video player has been HTML5 video for about the last year.
On top of that, what you're doing violates the YouTube terms of service. Using any other play other than that supplied by YouTube is expressly forbidden unless excepted by written authorization by YouTube. Good luck getting that.
Yeah, Flash is updated by Windows Update on Windows 8 and above. It's no longer handled by Adobe and, frankly, Adobe is shutting down support for Flash except for gaming and "premium video", which does not apply to YouTube.
YouTube reserves the right to change their support and how they deliver video at any time and has done so multiple times in the past to prevent you from using your own player. What works today is in no way guaranteed to work tomorrow.
|
|
|
|
|
Dave,
Thank you for your input and response. I am fortunate that someone with your depth of knowledge and credentials took the time to bring me up to date. Since my use is for an application and not a webpage, HTML5 is and never was a solution for me. I understand the legalities and I thank you for bringing it to my attention, but I don't think that there are less than 100 videos posted ON YouTube that explain how to use the Shock-wave Viewer in a C# form to view the content of videos posted on You Tube. Like most things today, and as You Tube already knows (or has found out), as quick as they make a change there will be some one with a new key for the lock. It is not possible to post something in the public domain without having someone else contrive a way to get around it. That said, I prefer to do it right and I will simply have to find (or create) a service and/or system that will let me continue to have videos viewed privately from within proprietary software. Perhaps I will change the videos to (mp4) and host them on my own server. Then I can use the Microsoft Media player that already has libraries in Visual Studio. In my case, the most disturbing thing was the timing. Thank You Again. I would like to be able to call on you for advice and perhaps even do some work for me if you are interested. Best Regards, Pat.
|
|
|
|
|
Well, just because "everyone is doing it" in no way at all makes it OK for you to do it.
You're not going to get help with this for 2 reasons.
1) Per the YouTube Terms of Service, what you're doing is a copyright violation. The content belongs to YouTube. The content is not "public domain" and you really don't get to do with it as you please.
2) You're stealing money. By creating your own video viewer you are filtering out the ads that come with the content. That ad money is what pays the bills for the service and also puts money into the pockets of the content producers. By rolling your own viewer, you are taking away that ad money.
Oh, and why would I want to work for someone who thinks so little of other peoples work that you don't want to pay them to do it?
|
|
|
|
|
I have a trouble with my code in trying to add a combobox to filter a datagrid. It complains in the dataview constructor ("The best overloaded method match for'System.Data.DataView.DataView(System.Data.DataTable')has some invalid arguments".
It also complains in the declaration of rowgrid object: 'System.Data.DataSet' does not contain a definition for 'DefaultView' and no extension method 'DefaultView' accepting a first argumentof type 'System.Data.DataSet' could be found (are you missing a using directive or an assembly reference?)
public void Consulta()
{
con = new OdbcConnection("driver= {MySQL ODBC 5.1 Driver};server=xxxx; database=licenciamento; uid=estagio; password=1234; option = 3 ");
con.Open();
OdbcCommand Command = con.CreateCommand();
Command.CommandText = "select lojas.Id, lojas.NIF, lojas.Loja, lojas.Bloquear, lojas.DataFim, lojas.lastupdate, lojas.Nome, " +
" licenciamentoloja.EArtigo, licenciamentoloja.EFamilia, licenciamentoloja.EClientes, licenciamentoloja.EFornecedores, licenciamentoloja.Evendas," +
"licenciamentoloja.ECompras, licenciamentoloja.EStocks, licenciamentoloja.ELiquidacao, licenciamentoloja.ECaixas, licenciamentoloja.EInfoStock," +
"licenciamentoloja.ZSArtigos, licenciamentoloja.ZSClientes, licenciamentoloja.ZSStocks, licenciamentoloja.id from lojas inner join licenciamentoloja on lojas.NIF = licenciamentoloja.NIF and lojas.Loja = licenciamentoloja.loja";
Command.CommandType = CommandType.Text;
Command.Connection = con;
OdbcDataAdapter adapter = new OdbcDataAdapter();
adapter.SelectCommand = Command;
DataSet ds = new DataSet();
adapter.Fill(ds);
grid_lic.DataSource = ds;
grid_lic.DataMember = ds.Tables[0].TableName;
DataView dv = new DataView(ds);
comboBox_NIF.DataSource = dv;
comboBox_NIF.ValueMember = "NIF";
comboBox_NIF.DisplayMember = "loja";
comboBox_NIF.SelectedIndexChanged += comboBox_NIF_Change;
ds.DefaultView.RowFilter = "ProductID = " + Convert.ToString(comboBox_NIF.SelectedValue);
|
|
|
|
|
The DataView Constructor[^] that you're intending to use expects a DataTable as argument, not a DataSet. But you can as well assign the DataTables DefaultView to the ComboBox' DataSource:
comboBox_NIF.DataSource = ds.Tables[0].DefaultView;
(Assuming it's table 0 you want.)
If the brain were so simple we could understand it, we would be so simple we couldn't. — Lyall Watson
|
|
|
|
|
What´s the best way (changes in my code) to solve this problem in order to have the combobox filtering specific columns of the datagrid?
|
|
|
|
|
You could add an EventHandler-Method to the SelectedValueChanged- or SelectedIndexChanged-Event of the ComboBox and therein set the RowFilter-Property[^] of the DataView of the DataTable that you set as the DataMember of the DataGridView.
If the brain were so simple we could understand it, we would be so simple we couldn't. — Lyall Watson
|
|
|
|
|
I guess I already solved the problem, it filters and changes the cells, but when I filter the columns 'Nome' and change its content, it throwns an error. It only happens with this filter, because the other filters after being applied let me change the column 'nome'. It seems when I clik in the button 'gravar' to change or fill the datagrid after aplying the specif filter 'Nome' the rowselected is no longer the one where the filter is, it appears an empty row, and then the error.
private void bt_filtrar_Click(object sender, EventArgs e)
{
dt = ds.Tables["filtro"];
dt.DefaultView.RowFilter = "NIF = '" + txtNIF.Text.Trim() + "'";
if (dt.DefaultView.Count == 0)
{
MessageBox.Show("Não foram encontrados registos com esse NIF");
Consulta();
}
else
grid_lic.DataSource = dt.DefaultView;
grid_lic.Columns[0].Visible = false;
grid_lic.Columns[5].Visible = false;
grid_lic.Columns[20].Visible = false;
grid_lic.Columns[1].Frozen = true;
grid_lic.Columns[2].Frozen = true;
}
private void bt_loja_Click(object sender, EventArgs e)
{
dt = ds.Tables["filtro"];
dt.DefaultView.RowFilter = "Loja =" + txtNIF.Text;
if (dt.DefaultView.Count == 0)
{
MessageBox.Show("Não foram encontrados lojas com esse número");
Consulta();
}
else
{
grid_lic.DataSource = dt.DefaultView;
grid_lic.Columns[0].Visible = false;
grid_lic.Columns[5].Visible = false;
grid_lic.Columns[20].Visible = false;
grid_lic.Columns[1].Frozen = true;
grid_lic.Columns[2].Frozen = true;
}
}
private void bt_nome_Click(object sender, EventArgs e)
{
dt = ds.Tables["filtro"];
dt.DefaultView.RowFilter = "Nome = '" + txtNIF.Text + "'";
if (dt.DefaultView.Count == 0)
{
MessageBox.Show("Não foram encontrados registos com esse nome");
Consulta();
}
else
{
grid_lic.DataSource = dt.DefaultView;
grid_lic.Columns[0].Visible = false;
grid_lic.Columns[5].Visible = false;
grid_lic.Columns[20].Visible = false;
grid_lic.Columns[1].Frozen = true;
grid_lic.Columns[2].Frozen = true;
}
}
public void Consulta()
{
con = new OdbcConnection("driver= {MySQL ODBC 5.1 Driver};server=xxx; database=licenciamento; uid=estagio; password=1234; option = 3 ");
con.Open();
OdbcCommand Command = con.CreateCommand();
Command.CommandText = "select lojas.Id, lojas.NIF, lojas.Loja, lojas.Bloquear, lojas.DataFim, lojas.lastupdate, lojas.Nome, " +
" licenciamentoloja.EArtigo, licenciamentoloja.EFamilia, licenciamentoloja.EClientes, licenciamentoloja.EFornecedores, licenciamentoloja.Evendas," +
"licenciamentoloja.ECompras, licenciamentoloja.EStocks, licenciamentoloja.ELiquidacao, licenciamentoloja.ECaixas, licenciamentoloja.EInfoStock," +
"licenciamentoloja.ZSArtigos, licenciamentoloja.ZSClientes, licenciamentoloja.ZSStocks, licenciamentoloja.id from lojas inner join licenciamentoloja on lojas.NIF = licenciamentoloja.NIF and lojas.Loja = licenciamentoloja.loja";
Command.CommandType = CommandType.Text;
Command.Connection = con;
OdbcDataAdapter adapter = new OdbcDataAdapter();
adapter.SelectCommand = Command;
ds = new DataSet();
dt = ds.Tables["filtro"];
adapter.Fill(ds,"filtro");
grid_lic.DataSource = ds;
grid_lic.DataMember = ds.Tables[0].TableName;
grid_lic.DataMember = "filtro";
|
|
|
|
|
Please post the name of the exception and the stacktrace; it will make it easier to help you with that.
If the brain were so simple we could understand it, we would be so simple we couldn't. — Lyall Watson
|
|
|
|
|
The error is "reference not set to an instance of an object". This happens when I change the content of the cell respective to the column ('nome') after aplying the filter ('nome'). If I don't apply this specific filter, the content change is made without any errors.
|
|
|
|
|
When you get the exception report window, please click on "View Detail..", click on that small arrow to expand the exception data view, click on the line "StackTrace", click on the down-arrow at the right side, copy the text from there into your reply here
If the brain were so simple we could understand it, we would be so simple we couldn't. — Lyall Watson
|
|
|
|
|
The error is logical because the datagrid is not assuming the change of the data after I apply the filter 'nome', it considers as no data to fill the datagrid. The problem is why this happens. When i change data in any column other than the one regarding the filter, that data is considered and the datagrid is changed or filled with new data, but when I apply the filter, the datagrid becomes empty at the moment I press the button to change the data.
|
|
|
|
|
Ok I think I got it now. The cause will probably be that your code behind the button "gravar" tries to access that row which isn't part of the view any more because when your input cursor leaves the cell edit control (when clicking the button) the filter gets automatically re-applied so that the row gets removed before the code behind "gravar" gets executed.
The following link should provide you with a solution to this:
c# - DataGridView filter hiding edited items - Stack Overflow[^]
If the brain were so simple we could understand it, we would be so simple we couldn't. — Lyall Watson
|
|
|
|
|
I tried that solution and it solved my problem regarding the edition of filtered column, but it brought another problem which is not being able to edit any other column when the filter is not applied. The error has the same message: "Object reference not set to an instance of an object", and appears in the function private void grid_lic_CellEndEdit(object sender, DataGridViewCellEventArgs e).
private void grid_lic_CellParsing(object sender, DataGridViewCellParsingEventArgs e)
{
id = int.Parse(grid_lic.Rows[e.RowIndex].Cells[0].Value.ToString());
}
private void grid_lic_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
dt.DefaultView.RowFilter += " OR id=" + id.ToString();
}
|
|
|
|
|