|
Hi
so this statement isnt working is it cos im using an insert
string maxquery2 = "SELECT @maxValue = MAX(activity_order) FROM roomactivitylk WHERE room_code = 'v1106';INSERT INTO roomactivitylk (room_code, activity_order, instance_variant, activity_code, ignore_flag) VALUES ('" + room_code + "', @maxValue + 1, '1', '" + activity_code + "')";
??
thanksoyu
|
|
|
|
|
What are the errors?
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway
|
|
|
|
|
it just wont insert
the appication is set to custom errors
it wont insert into the database, does ythe syntax look correct?
|
|
|
|
|
yeah, value for "ignore_flag" isnt exist
Becoming Programmer...
|
|
|
|
|
That can't be used safely anywhere. As the select and insert are executed in separate transactions, there is no guarantee that the @maxValue is still the hightest value when you use it in the insert.
Why aren't you using an identity field? It will increment automatically.
Experience is the sum of all the mistakes you have done.
|
|
|
|
|
I have a tabcontrol with say, 5 tabsheets. I would like to be able to hide one or more of these tabsheets during runtime (and make it visible again at a later stage) but can't seem to figure out how. I was hoping for something like
myTabSheet.visible = false;
but there's no such property.
Any tips? Thanks in advance.
|
|
|
|
|
The actual tab pages are separate controls that than the tab control itself.
So you can remove the tabpage from the list of tab pages the tab control has, and add it back later.
this.tabControl.TabPages.Remove(tabPage);<br />
this.tabControl.TabPages.Add(tabPage);
My current favourite word is: Bauble!
-SK Genius
|
|
|
|
|
I have deckControl that we allow users to create new deck items with. When they create a new deck item we want them to be able to enter the name for the deckitem in the textbox that we have as part of the deckitem. We give the new deckitem a default name of 'New Category' so when they create a deck item we want the textbox displayed with the name 'New Category' selected/highlighted so they can type in their name for the item.
I can get the textbox to display, but it never gets focus, so the text is not highlighted and the cursor is not in the textbox, even tho the IsFocused property is true. One thing I did notice was that the IsLoaded property is false, does this have anything to do with it? How do I force the new deck item to be loaded? The new deckItem is visibily displayed, and it is set to be the selectedItem in the deckControl. This is my first WPF project so I am sure I am missing something obvious.
As a side note the method I am calling to handle this also gets called if the user wants to rename a deckItem and it works fine on an existing deckItem, just not when they create a new deckItem.
Thanks!
modified on Friday, December 07, 2007 10:38:46 AM
|
|
|
|
|
Are you setting the focus in the constructor? If so, move it to the OnLoad event, or the OnShown event. Sometimes setting focus in the constructor doesn't do anything for some reason. Let me know if this helps.
-Jeff
|
|
|
|
|
No, I do not have the focus in the constructor, it is in the method we call to show the textbox, select the text.
Here is the code where I create the deckItem:
DeckItem item = CreateDeckPage(statLibDO);
statLibDO.Order = this.View.ControlDeck.Count;
this.View.ControlDeck.Add(item);
this.View.ControlDeck.SelectedItem = item;
EnableEditMode(this.currentDeckItem.DeckHeader as ReportTreeViewHeader);
Here is the EnableEditMode method:
private static void EnableEditMode(ReportTreeViewHeader header)
{
if (header != null)
{
header.EditHeaderText();
if (!header.HeaderEditor.IsFocused)
header.HeaderEditor.Focus();
}
}
Finally, here is the code for header.EditHeaderText that does all the work:
public void EditHeaderText()
{
//this.headerEditor.Text = this.headerText.Content.ToString();
this.headerText.Visibility = Visibility.Hidden;
this.headerEditor.Visibility = Visibility.Visible;
this.headerEditor.SelectAll();
this.headerEditor.Focus();
ReportDragDropManager.SuspendDragDropActivity = true;
}
Also, here is the code when the want to rename an existing deckItem whick works fine:
private void MenuItem_ClickRename(object sender, RoutedEventArgs e)
{
if (this.targetDeckItem != null)
EnableEditMode(this.targetDeckItem.DeckHeader as ReportTreeViewHeader);
else if (this.targetTreeViewItem != null)
EnableEditMode(this.targetTreeViewItem.ReportTreeViewItemHeader);
}
This calls the same EnableEditMode method that gets called when I create a new deckitme. The problem seems to me that the new deck item is not yet loaded (IsLoaded is false) so I am thinking that is why I can not get focus on the deck. How do I get the new deckItem loaded?
Thanks for your reply!
|
|
|
|
|
Ok, change the following and see if it changes the result:
EnableEditMode(this.currentDeckItem.DeckHeader as ReportTreeViewHeader);
-to-
EnableEditMode(item.DeckHeader as ReportTreeViewHeader);
I doubt it will, otherwise you would have seen a non-default header title as the title of the textBox. Also ensure that the ReportTreeViewHeader being passed in is NOT null. Another idea is to call "this.Refresh()", "this.View.ControlDeck.Refresh();", or "item.Refresh()", prior to and after setting the focus (try both separately, and together). If none of this works, then I really don't have any additional ideas. I think I know what the problem is, though... the textBox isn't actually displayed until the next call OnPaint method is executed. Since you set the focus prior to the textBox actually being visually created, it is not being drawn properly. Hopefully calling one of the Refresh() methods will halt execution on the main thread until the textbox's GUI has been created. This appears to be a similar problem to what I was describing with the constructor... stuff isn't drawn until AFTER the constructor yields control of the main thread to the message pump. Good luck!
-Jeff
|
|
|
|
|
I do not have the refresh option available on any of the items you specified, so I can not try that. Is there a way to navigate to off my current deck item and then back on to it to cause it to repaint?
Thanks for all your help!
|
|
|
|
|
Presumably you are adding the textbox to some sort of UserControl object, right? Just refresh the control that contains the textbox (after the control is visible and the textbox has been added to it's children), and that may solve the problem.
-Jeff
|
|
|
|
|
when you say 'refresh' what do you mean? I do not have a refresh option available when I do this.
|
|
|
|
|
All things that inherit from type "System.Windows.Forms.Control" have a method, declared as "public void Refresh();". This method invalidates and repaints the control, so whatever the TextBox (which is a control, and therefore should have this method) is added to when you try to display it should have this method on it. Let me know if it works.
-Jeff
|
|
|
|
|
Hi Jeff!
Thanks for all your help and suggestions, I really appreaciate it!.
What I ended up doing was creating an item_Loaded event handler and placing the EnableEnditMode method call in the event handler, and then it started working!
I think you suggested that in one of your earlier posts but I didn't do it because the Isloaded for the item always said false so I figured adding an event handler was pointless.
Thanks again!
Bob
|
|
|
|
|
I want from data reader coloumn 2 data to MessageBox.But gettin error.!
string strBaglanti = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=ftakip.mdb";
// Baglanti nesnemiz:
OleDbConnection conBaglanti = new OleDbConnection(strBaglanti);
// Komutumuzu tanimlayalim
OleDbCommand cmdKayitEkle = new OleDbCommand();
// komutumuzun tipini ve ismini verelim:
cmdKayitEkle.CommandType = CommandType.Text;
cmdKayitEkle.CommandText = "SELECT F_NO FROM F_KAYIT" +
" WHERE F_NO = '1231'";
cmdKayitEkle.Connection = conBaglanti;
conBaglanti.Open();
OleDbDataReader dr = cmdKayitEkle.ExecuteReader();
while (dr.Read())
{
MessageBox.Show(dr[2].ToString());
}
dr.Close();
conBaglanti.Close();
}
|
|
|
|
|
Your command text only contains 1 column. How could you read from any other column? BTW - you should use GetOrdinal to find the ordinal position of this column, e.g. dr.GetString(dr.GetOrdinal("F_NO"));
|
|
|
|
|
Your query only returns 1 column. How can you reference a second column?
BTW, DataReader column indexers are zero-based. dr[2] actually returns the 3rd column.
Paul Marfleet
"No, his mind is not for rent
To any God or government"
Tom Sawyer - Rush
|
|
|
|
|
Have you tried dr[1] ?
I don't remember how it was in C# but I think datareader's indexes begin in 0.
Hope it helps
rotter
|
|
|
|
|
i think i wrote something wrong.I dont mean to i want 2 Coloumn from data reader. I want SECOND Coloumn's data from data reader than write it with MessageBox.But i am getting an error like Data Type conflict.
|
|
|
|
|
Hi,
I have just switched from VS2003 to VS2008. I am using a repeater control on a web form.
When i try to personalise the control in HTML using
. I am getting a error for bgcolor!!
I think bgcolor has been superseded with something else? Can someone please tell me what i would need to do.....
Cheers
|
|
|
|
|
It is replaced by background-color css attribute
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway
|
|
|
|
|
Thanks Ennis Ray Lynch, Jr.
how would i use a css attribute?
e.g. if i wanted to have a blue background on a field name. Id use something like bgcolor=blue.
How to you do that with a css attribute??
Cheers
|
|
|
|
|
style="background-color:blue;"
|
|
|
|