|
Are you using a Release compiled .DLL and a Debug compiled .EXE? Try compiling the thing entirely Debug or entirely Release and see what happens.
RageInTheMachine9532
|
|
|
|
|
the dll is a release compile, and .exe is made in VB
If it's broken, I probably did it
bdiamond
|
|
|
|
|
I've been doing a bunch of reading on the mySQL package. What version are you using? There seems to be a bug in some fairly recent releases that can cause this problem. I've also run into examples where when you first create the mySQL object, a default connection is created. You might want to try dropping/closing this connection first before your try to create a new one with your existing code.
RageInTheMachine9532
|
|
|
|
|
Hi
Hopefully someone can help me with this problem.
I have a 3 page workbook (report,data1,data2).
data1 and data2 are loaded as External Data from 2 csv files and are updated at 10 minute intervals. Both sheets have the same layout -:
Col A = date (i.e. 12-DEC-04) (as string)
Col B = reference (i.e. ABC1234) (as string)
Col C = value1 (as integer)
Col D = value2 (as integer)
Col E = value3 (as integer)
The report page has 3 columns.
Col A = date (as Date)
Col B = reference (as string)
Cols C - F = various values
Col G = valtotal (as integer)
I've written a function that takes in 4 parameters (ref,date,page,reqcol).
"page" sets which of the sheets is used for the info (data1 or data2).
"Reqcol" sets which column from the data sheet is reqd.
(e.g. Cell G4 on the report might be =vallookup(G1,A1,"data2","E"))
This has to loop over the data checking all references, and if it finds a match then check the date. If both match, it returns the value in column (reqcol).
The data size is not known until the data is refreshed (cell A1 contains the number of rows).
A variable, 'lastrow', is used as the number of rows and a number of loops is performed.
The function appears to work sometimes, but other times won't work - on the same data!
Also, I need to have an easy way to refresh the values returned by the funcion on the report page without having to hit 'Enter' on each cell.
Here is the function as it stands......
Public Function vallookup(ref As String, dateref As Date, page As String, reqcol As String)<br />
'Activate correct page sheet<br />
Worksheets(page).Activate<br />
'Get size of dataset<br />
lastrow = Worksheets(page).Cells(2, "A").Value<br />
'Loop data<br />
For a = 1 To lastrow<br />
If (UCase(ref) = UCase(Worksheets(page).Cells(a, "B").Value)) Then<br />
If (dateref = DateValue(Worksheets(page).Cells(a, "A").Value)) Then<br />
vallookup = Worksheets(page).Cells(a, reqcol).Value<br />
End If<br />
End If<br />
Next a<br />
End Function<br />
<br />
<br />
Sub Refresh()<br />
'Attempt at a Refresh function<br />
Worksheets("report").Calculate<br />
End Sub
|
|
|
|
|
I just started using WebMatrix and ASP.NET, and I have one problem - I like to know, how I can do it:
Situation - I have one page "Licence agreement" with Agree and Disagree; when user click Agree, then must open Registration form (I made it in that way: Response.Redirect("Reg.aspx")). So far is OK! But I need, that the form Reg.aspx opens only when in Licence form users click Agree - shortly - it (Reg) should no opens, when users write in adress bar http://www.xxxxx.com/Reg.aspx...
Sorry for my english, but I hope that U understood my problem. I use VB.NET
|
|
|
|
|
Why not have them on the same page and skip the Agree/Disagree buttons. Put into your License Agreement that submitting a registration automatically agrees with license?
But, you could drop a small flag into the Session object, in the Agree button click event, that is read by the Reg.aspx Page_Load event. In there, if the flag is not set, redirect them back to the License page.
In your License page AgreeButton_Click handler:
Session("License") = "Accepted"
And in your Registration Page_Load event handler:
If Session("License") <> "Accepted" Then
Response.Redirect("...URL to License Page...")
End If
RageInTheMachine9532
|
|
|
|
|
I don't think using a session variable would be the best solution. I would do one of two things:
(1) Check the page the user came from
If Request.ServerVariables("http_referer") <> "LicensePage.aspx" Then
' send user to another page or show an error
End If Or...
(2) Show/Hide panels upon agree/disagree
Within your ASPX page:
<asp:Panel id="LicensePanel" runat="server">
...
<asp:Button id="AgreeButton" Text="Agree" runat="server" />
<asp:Button id="DisagreeButton" Text="Disagree" runat="server" />
</asp:Panel">
<asp:Panel id="AgreePanel" Visible="false" runat="server">
You agreed! :)
</asp:Panel">
<asp:Panel id="DisagreePanel" Visible="false" runat="server">
You disagreed! :(
</asp:Panel"> And, within your AgreeButton_Click :
LicensePanel.Visible = False
AgreePanel.Visible = True And, finally, within your DisagreeButton_Click :
LicensePanel.Visible = False
DisagreePanel.Visible = True Now, personally, I'd prefer the second option over the first, but that kind of depends on how much functionality you want on the page. I'll leave that up to you.
Hope this helps!
Michael Flanakin
Web Log
|
|
|
|
|
Just something off the top of my head. I haven't been doing much ASP.NET so my solution most likely isn't the best, but it works...
Your solutions are much better. Thanks for the tips!
RageInTheMachine9532
|
|
|
|
|
Both of our solutions will work just fine. Using session variables, however, could lead to scalability problems in the long run. It's best to try to avoid them as a good practice.
Michael Flanakin
Web Log
|
|
|
|
|
I found a game assistance program posted on the web that I would very much like to use. It is written in BASIC. Ya'll may get a good laugh out of this, but I tried copying it into a windows folder and then renaming the folder "Ironclads.exe". I get an error telling me it is not a valid win 32 application...The addy to the game assistance program: ftp://www.grognard.com/pub/games/board/ironclad.txt
Anybody got any ideas? I am running Win95 on this particular computer? You can contact me at hanksteph@houston.rr.com Regards, Hank Smith
|
|
|
|
|
hmssws wrote:
I tried copying it into a windows folder and then renaming the folder "Ironclads.exe". I get an error telling me it is not a valid win 32 application...
What??? Renaming a folder will never generate this error.
I took a look at what you got from the board. It's an old QBASIC program. Just renaming it to an .EXE will NOT work. You have to load the thing into QBASIC and run it from there. You can't compile the thing under VB6 or VB.NET unless you rewrite the code.
Since your running Windows 95, you shouldn't have a problem running QBASIC, just open a command prompt and type QBASIC. QBASIC no longer comes with Windows 2000 and above.
RageInTheMachine9532
|
|
|
|
|
i have 4 columns in my datagrid which at the moment are displaying "yes" or "no". My boss wants these existing columns to display checkboxes instead. Ive tried really hard to find a solution to this problem but so far nothing has worked Any help would be greatly appreciated - getting desparate now!!
Chrissy Callen
|
|
|
|
|
DataGridCheckBoxColumn class is there in the API. What is the problem for u in using it?
|
|
|
|
|
basically im very new to this i need code examples to help me figure it out. How exactly do i apply DataGridCheckBoxColumn to any particular column that already exists in my datagrid??
Chrissy Callen
|
|
|
|
|
Sorry it is DataGridBoolColumn class.
An example is available in MSDN. Just I m giving it below..
using System;
using System.Data;
using System.Windows.Forms;
using System.Drawing;
using System.ComponentModel;
public class MyForm : Form
{
private DataTable myTable;
private DataGrid myGrid = new DataGrid();
public MyForm() : base()
{
try
{
InitializeComponent();
myTable = new DataTable("NamesTable");
myTable.Columns.Add(new DataColumn("Name"));
DataColumn column = new DataColumn
("id", typeof(System.Int32));
myTable.Columns.Add(column);
myTable.Columns.Add(new
DataColumn("calculatedField", typeof(bool)));
DataSet namesDataSet = new DataSet();
namesDataSet.Tables.Add(myTable);
myGrid.SetDataBinding(namesDataSet, "NamesTable");
AddTableStyle();
AddData();
}
catch (System.Exception exc)
{
Console.WriteLine(exc.ToString());
}
}
private void grid_Enter(object sender, EventArgs e)
{
myGrid.CurrentCell = new DataGridCell(2,2);
}
private void AddTableStyle()
{
// Map a new TableStyle to the DataTable. Then
// add DataGridColumnStyle objects to the collection
// of column styles with appropriate mappings.
DataGridTableStyle dgt = new DataGridTableStyle();
dgt.MappingName = "NamesTable";
DataGridTextBoxColumn dgtbc = new DataGridTextBoxColumn();
dgtbc.MappingName = "Name";
dgtbc.HeaderText= "Name";
dgt.GridColumnStyles.Add(dgtbc);
dgtbc = new DataGridTextBoxColumn();
dgtbc.MappingName = "id";
dgtbc.HeaderText= "id";
dgt.GridColumnStyles.Add(dgtbc);
DataGridBoolColumn db =
new DataGridBoolColumn();
db.HeaderText= "less than 1000 = blue";
db.Width= 150;
db.MappingName = "calculatedField";
dgt.GridColumnStyles.Add(db);
myGrid.TableStyles.Add(dgt);
// This expression instructs the grid to change
// the color of the inherited DataGridBoolColumn
// according to the value of the id field. If it's
// less than 1000, the row is blue. Otherwise,
// the color is yellow.
db.Expression = "id < 1000";
}
private void AddData()
{
// Add data with varying numbers for the id field.
// If the number is over 1000, the cell will paint
// yellow. Otherwise, it will be blue.
DataRow dRow = myTable.NewRow();
dRow["Name"] = "name 1 ";
dRow["id"] = 999;
myTable.Rows.Add(dRow);
dRow = myTable.NewRow();
dRow["Name"] = "name 2";
dRow["id"] = 2300;
myTable.Rows.Add(dRow);
dRow = myTable.NewRow();
dRow["Name"] = "name 3";
dRow["id"] = 120;
myTable.Rows.Add(dRow);
dRow = myTable.NewRow();
dRow["Name"] = "name 4";
dRow["id"] = 4023;
myTable.Rows.Add(dRow);
dRow = myTable.NewRow();
dRow["Name"] = "name 5";
dRow["id"] = 2345;
myTable.Rows.Add(dRow);
myTable.AcceptChanges();
}
private void InitializeComponent()
{
this.Size = new Size(500, 500);
myGrid.Size = new Size(350, 250);
myGrid.TabStop = true;
myGrid.TabIndex = 1;
this.StartPosition = FormStartPosition.CenterScreen;
this.Controls.Add(myGrid);
}
[STAThread]
public static void Main()
{
MyForm myGridForm = new MyForm();
myGridForm.ShowDialog();
}
}
|
|
|
|
|
thanks but is there any chance of having this in vb.net code please??
Chrissy Callen
|
|
|
|
|
Imports System
Imports System.Data
Imports System.Windows.Forms
Imports System.Drawing
Imports System.ComponentModel
Public Class MyForm
Inherits System.Windows.Forms.Form
Private components As System.ComponentModel.Container
Private myTable As DataTable
Private myGrid As DataGrid = New DataGrid
Public Shared Sub Main()
Application.Run(New MyForm)
End Sub
Public Sub New()
Try
InitializeComponent()
myTable = New DataTable("NamesTable")
myTable.Columns.Add(New DataColumn("Name"))
Dim column As DataColumn = New DataColumn _
("id", GetType(System.Int32))
myTable.Columns.Add(column)
myTable.Columns.Add(New DataColumn _
("calculatedField", GetType(Boolean)))
Dim namesDataSet As DataSet = New DataSet("myDataSet")
namesDataSet.Tables.Add(myTable)
myGrid.SetDataBinding(namesDataSet, "NamesTable")
AddData()
AddTableStyle()
Catch exc As System.Exception
Console.WriteLine(exc.ToString)
End Try
End Sub
Private Sub AddTableStyle()
' Map a new TableStyle to the DataTable. Then
' add DataGridColumnStyle objects to the collection
' of column styles with appropriate mappings.
Dim dgt As DataGridTableStyle = New DataGridTableStyle
dgt.MappingName = "NamesTable"
Dim dgtbc As DataGridTextBoxColumn = _
New DataGridTextBoxColumn
dgtbc.MappingName = "Name"
dgtbc.HeaderText = "Name"
dgt.GridColumnStyles.Add(dgtbc)
dgtbc = New DataGridTextBoxColumn
dgtbc.MappingName = "id"
dgtbc.HeaderText = "id"
dgt.GridColumnStyles.Add(dgtbc)
Dim db As DataGridBoolColumnInherit = _
New DataGridBoolColumnInherit
db.HeaderText = "less than 1000 = blue"
db.Width = 150
db.MappingName = "calculatedField"
dgt.GridColumnStyles.Add(db)
myGrid.TableStyles.Add(dgt)
' This expression instructs the grid to change
' the color of the inherited DataGridBoolColumn
' according to the value of the id field. If it's
' less than 1000, the row is blue. Otherwise,
' the color is yellow.
'db.Expression = "id < 1000"
End Sub
Private Sub AddData()
' Add data with varying numbers for the id field.
' If the number is over 1000, the cell will paint
' yellow. Otherwise, it will be blue.
Dim dRow As DataRow
dRow = myTable.NewRow()
dRow("Name") = "name 1"
dRow("id") = 999
myTable.Rows.Add(dRow)
dRow = myTable.NewRow()
dRow("Name") = "name 2"
dRow("id") = 2300
myTable.Rows.Add(dRow)
dRow = myTable.NewRow()
dRow("Name") = "name 3"
dRow("id") = 120
myTable.Rows.Add(dRow)
dRow = myTable.NewRow()
dRow("Name") = "name 4"
dRow("id") = 4023
myTable.Rows.Add(dRow)
dRow = myTable.NewRow()
dRow("Name") = "name 5"
dRow("id") = 2345
myTable.Rows.Add(dRow)
myTable.AcceptChanges()
End Sub
Private Sub InitializeComponent()
Me.Size = New Size(500, 500)
myGrid.Size = New Size(350, 250)
myGrid.TabStop = True
myGrid.TabIndex = 1
Me.StartPosition = FormStartPosition.CenterScreen
Me.Controls.Add(myGrid)
End Sub
End Class
|
|
|
|
|
that was quick im very impressed..thank you..will give that a go right now.
Chrissy Callen
|
|
|
|
|
Hi
I have the same problem if you find the answer please tell me
|
|
|
|
|
well at the moment i'm looking into creating a listview instead on the advice of one of my colleagues
Chrissy Callen
|
|
|
|
|
I have a 2 labels and a check box..
I want if I click on checkbox change a setting, and for that 2 labels too ,if I click on them that setting maust change...it means the code of check and labels are the same
so how can I write one code for them 3..
(i have recive a reply "please help me " ..good but not complete)
help me Please again
|
|
|
|
|
Yes. The reply you got before was complete! If there is something missing, it's because the requirements you gave us are not complete.
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click, Label2.Click
If CheckBox1.Checked = True Then
CheckBox1.Checked = False
Else
CheckBox1.Checked = True
End If
End Sub
Note: You don't need code for the CheckBox itself to change it's state. The CheckBox will automatically handle that itself.
UPDATE:
I see from you other post that your looking to put code in the CheckChanged event of the CheckBox. You didn't mention what you wanted to put in your event handler, so, adding to the code above...
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
MsgBox("Check Changed!")
End Sub
And, no, it's NOT a good idea for one function to handle both the Label Click's and the Check Changed events. Clicking on the Labels will generate a Click event, which will call the Click handler above. If you change the status of the CheckBox, it will generate a CheckChanged event and will call your Click handler AGAIN.
RageInTheMachine9532
|
|
|
|
|
Tanx
nice solution
i can't remember that what did i do that mades overflow error
|
|
|
|
|
check back to my other post, it is the solution to your problem. it handles the event for all 3 objects.
------------------------
Jordan.
III
|
|
|
|
|