|
I am actually using two queries to get the data that I need in the spreadsheet. So does that mean that I would have to create two more for loops to read through both those rowsets? For example,
foreach(DataRow row in Research.Rows)
foreach(DataRow row in Product.Rows)
Here is the code that I've got so far......
int CurrentRow = 3;
Dictionary<string, string> myDictionary = new Dictionary<string, string>();
foreach (Dictionary<string, string> row2 in Research.Rows())
{
myDictionary.Add(row2["unit"], row2["tm_ldr"]);
}
foreach (Dictionary<string, string> row in Product.Rows())
{
oSheet.get_Range("A" + CurrentRow, "A" + CurrentRow).Formula = row["unit"];
try
{
oSheet.get_Range("B" + CurrentRow, "B" + CurrentRow).Formula = myDictionary[row["unit"]];
}
catch (Exception ex)
{
}
oSheet.get_Range("C" + CurrentRow, "C" + CurrentRow).Formula = row["prod_nm"];
oSheet.get_Range("D" + CurrentRow, "D" + CurrentRow).Formula = row["gnr_nm"];
oSheet.get_Range("E" + CurrentRow, "E" + CurrentRow).Formula = row["model"];
oSheet.get_Range("F" + CurrentRow, "F" + CurrentRow).Formula = row["mfr"];
CurrentRow++;
|
|
|
|
|
As you code sugests you are still only placing the data in the spread sheet in one line of code per column.
so you do the check before you put the data in.
at the end of each loop globally store the values for unit and teamLeader.
then before you insert unit into the spreedsheet, check if its value is the same as the last inserted unit value, if its the same dont insert the data to the spreadsheet.
Do the same for the teamLeader value
some example edit to your code....
object lastUnit = "";
foreach (Dictionary<string, string> row in Product.Rows())
{
if(row["unit"] != lastUnit)
{
oSheet.get_Range("A" + CurrentRow, "A" + CurrentRow).Formula = row["unit"];
lastUnit = row["unit"];
}
...see if this change works for the unit column. you will want to change the type of lastUnit to whatever type row["unit"] is
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
I ran the program with the following but now in the spreadsheet I am only getting one record per unit when I should have several.
foreach (Dictionary<string, string> row2 in Research.Rows())
{
if (row2["unit"] != lastUnit)
{
myDictionary.Add(row2["unit"], row2["tm_ldr"]);
lastUnit = row2["unit"];
}
foreach (Dictionary<string, string> row in Product.Rows())
{
if (row["unit"] != lastUnit)
{
oSheet.get_Range("A" + CurrentRow, "A" + CurrentRow).Formula = row["unit"];
lastUnit = row["unit"];
try
{
oSheet.get_Range("B" + CurrentRow, "B" + CurrentRow).Formula = myDictionary[row["unit"]];
}
catch (Exception ex)
{
}
oSheet.get_Range("C" + CurrentRow, "C" + CurrentRow).Formula = row["prod_nm"];
oSheet.get_Range("D" + CurrentRow, "D" + CurrentRow).Formula = row["gnr_nm"];
oSheet.get_Range("E" + CurrentRow, "E" + CurrentRow).Formula = row["model"];
oSheet.get_Range("F" + CurrentRow, "F" + CurrentRow).Formula = row["mfr"];
CurrentRow++;
}
}
oXL.Visible = true;
}
|
|
|
|
|
foreach (Dictionary<string, string> row2 in Research.Rows())
{
myDictionary.Add(row2["unit"], row2["tm_ldr"]);
lastUnit = row2["unit"];
foreach (Dictionary<string, string> row in Product.Rows()) {
if (row["unit"] != lastUnit)
{
oSheet.get_Range("A" + CurrentRow, "A" + CurrentRow).Formula = row["unit"];
lastUnit = row["unit"];
}
try
{
oSheet.get_Range("B" + CurrentRow, "B" + CurrentRow).Formula = myDictionary[row["unit"]];
}
catch (Exception ex)
{
}
oSheet.get_Range("C" + CurrentRow, "C" + CurrentRow).Formula = row["prod_nm"];
oSheet.get_Range("D" + CurrentRow, "D" + CurrentRow).Formula = row["gnr_nm"];
oSheet.get_Range("E" + CurrentRow, "E" + CurrentRow).Formula = row["model"];
oSheet.get_Range("F" + CurrentRow, "F" + CurrentRow).Formula = row["mfr"]; CurrentRow++;
}
oXL.Visible = true;
}
Copy and paste in CP does work so good with the code so i hope this is understandable.
Try this and let me know if your unit column displays as follows.
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
Ok so I made that change and I'm still getting only one record per unit.
Unit # Team Leader Product Name General Name Model Manufacturer
458 John Smith 42" Plasma TV Television 89465 SONY
849 Chris Jones Top Load Washer Washer 4415574 KENMORE
1024 Sean White Wireless Phone Cell Phone 541924 MOTOROLA
Before it looked like this.......
Unit # Team Leader Product Name General Name Model Manufacturer
458 John Smith 42" Plasma TV Television 89465 SONY
458 John Smith Surrnd Snd Sys Audio System 2111 MAGNAVOX
458 John Smith 32" Plasma Tv Television 43265 LG
849 Chris Jones Top Load Washer Washer 415574 KENMORE
849 Chris Jones Frnt Load Dryer Dryer 212541 KENMORE
1024 Sean White Wireless Phone Cell Phone 541924 MOTOROLA
1024 Sean White 16 GB MP3 Plyr MP3 Player 91181 ZUNE
1024 Sean White 32 GB MP3 Plyr MP3 Player 33587 APPLE
And this is what I'm trying to accomplish by merging what's in column A by unit. So for every unit 458 I want to just show one unit number but keep all the records associtated with it. What I have now with the code you gave me only gives me one record per unit. Also I'm trying to do the same thing with the team leader.
Unit # Team Leader Product Name General Name Model Manufacturer
458 John Smith 42" Plasma TV Television 89465 SONY
Surrnd Snd Sys Audio System 2111 MAGNAVOX
32" Plasma Tv Television 43265 LG
849 Chris Jones Top Load Washer Washer 415574 KENMORE
Frnt Load Dryer Dryer 212541 KENMORE
1024 Sean White Wireless Phone Cell Phone 541924 MOTOROLA
16 GB MP3 Plyr MP3 Player 91181 ZUNE
32 GB MP3 Plyr MP3 Player 33587 APPLE
modified on Wednesday, March 18, 2009 2:11 PM
|
|
|
|
|
hi to all .......
I am using c#.net windows application. for database MSAccess.
while inserting values in the table it show that
((Number of query values and destination fields are not the same.))
data base field
id name pass
autonumber text text
and my coding
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Data.OleDb;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Reservation : Form
{
OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents and Settings\\intel\\Desktop\\DB.mdb");
OleDbCommand cmd;
public Reservation()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
cn.Open();
cmd = new OleDbCommand("insert into Table1 values('" + textBox1.Text + "','" + textBox2.Text + "')", cn);
cmd.ExecuteNonQuery();
MessageBox.Show("inserted");
}
}
}
while insert its not inserted.........
by
sakthi
|
|
|
|
|
What is the schema of the Table1 ?
It seems that you can insert into the table, but missing the field value for some additional required field.
insert into Table1 values('field1', 'field2', 'field3', ..., 'fieldn')
n = Table1's field's count
|
|
|
|
|
database fields r
id username password
1 sakthi sakthi
2 ramesh ramesh
3 u u
(autoincreament)
and my coding
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Data.OleDb;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Reservation : Form
{
OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents and Settings\\intel\\Desktop\\DB.mdb");
OleDbCommand cmd;
public Reservation()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
cn.Open();
cmd = new OleDbCommand("insert into Table1 values('" + textBox1.Text +"','" + textBox2.Text + "')", cn);
cmd.ExecuteNonQuery();
MessageBox.Show("inserted");
}
}
}
while insert its not inserted.........
by
sakthi
|
|
|
|
|
HERE I USE ID AS AUTOINCREMENT
|
|
|
|
|
no caps until you have something special to say else it consider as you're shouting and nobody will reply you. Plus use Edit button at botton-right corner of the message to edit it.
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
try using square brackets around your column names. i.e. [Column1], [Column2] etc.
Also, do not include your AutoNumber column when inserting, this will be assigned automatically - you cannot write to it manually
third thing - make sure you use command parameters with your code...
cmd = new OleDbCommand("INSERT INTO Table1 ([column1], [column2]) VALUES (@1, @2)", cn);
cmd.Parameters.Add("@1", OleDbType.Char).Value = textBox1.Text;
cmd.Parameters.Add("@2", OleDbType.Char).Value = textBox2.Text;
NOTE how the column names have been specified to avoid trying to insert into the AutoNumber column
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
Hi
I have an application that contains a richtextbox with ole objects embedded into it.
The ole objects are imported from source files.
I am able to edit all embedded objects in their respective native applications except for powerpoint objects.
The powerpoint objects are activated as powerpoint slideshows and thus its not possible to edit these objects in native application.
Is it possible to change the default activation of ole powerpoint embedded objects from powerpoint slideshow mode to powerpoint presentation editing mode?
If not i also worked with the code (http://www.codeproject.com/KB/edit/richtextboxplus.aspx)
IRichEditOle richEditInterface = this.RichText.GetRichEditOleInterface();
// Create an object to hold info about the requested RTF object.
REOBJECT reObject = new REOBJECT();
IntPtr pPptObject = IntPtr.Zero;
richEditInterface.GetObject(0, reObject, GetObjectOptions.REO_GETOBJ_POLEOBJ)
// (You can get a GUID using the OLE/COM object viewer.
Guid guid = new Guid("{64818D10-4F9B-11CF-86EA-00AA00B929E8}"); // this is the GUID for powerpoint
// Query for the interface we want.
Marshal.QueryInterface(reObject.poleobj, ref guid, out pPptObject );
//i hope the following code typecasts the ole object (actually a powerpoint) into a powerpoint - but i have no clue of it
PowerPoint.Presentation ppt = (PowerPoint.Presentation)Marshal.GetTypedObjectForIUnknown(pPptObject, typeof(PowerPoint.Presentation));
Is it possible to use above code to activate this in powerpoint application editing mode?
Regards
GJ
|
|
|
|
|
Hi.
Can we run a C# App on a system without installing .NET Framework ?
Is it possible ?
Thank you.
|
|
|
|
|
well i assume you mean a C# App that uses the .Net Framework?
You could try copying the .Net Framework .DLL files that your app needs to its local directory and reference those files in your app. I think it is posible in VS or SD to set if a reference is a local copy or not. I not played with it thou so i cant be sure
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
musefan wrote: well i assume you mean a C# App that uses the .Net Framework?
You mean we can write a C# App without .NET Framework !
So, how ?
|
|
|
|
|
Well C# is just a language so.... i wouldnt know what to suggest you use it with thou. I have done game development with C# and XNA but i dont recall if it uses the .net framework thou.
Why is it you dont want end user machines to have .Net framework?
My suggestion would be just to include the .Net framework redistributable with your applications setup
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
|
musefan wrote: You could try copying the .Net Framework .DLL files that your app needs to its local directory and reference those files in your app.
no, it wont work. I tried that when I start programming, copied every known DLL in executable directory and got a nice looking .Net not installed error.
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Try Xenocode Postbuild
Run your application on any Windows PC - Native x86 executable generation allows your .NET application to run anywhere, with or without the Framework. Embed application-specific .NET and DirectX dependencies. (Windows 9x and NT4 targets not supported.)
|
|
|
|
|
Alas, It's not free
|
|
|
|
|
Depending on what you want to accomplish xenocode might not do what you want. IT doesn't actually convert your app into a native one. It wraps a compiler and the used parts of the framework into a single giant exe and then obfuscates them. At run time it then extracts everything and runs it just like a normal .net app.
Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots.
-- Robert Royall
|
|
|
|
|
That officially qualifies as a stupid question.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
John Simmons / outlaw programmer wrote: That officially qualifies as a stupid question.
Hi John .
How do you do today ?
|
|
|
|
|
Why would you want to do this? And in short, you can't. C# is very closely linked to the .NET Framework and you can't run C# apps without the framework although there are dubious products which claim you can.
The framework provides all the managed code support (garbage collection, verifiable code, reflection, security etc) for instance.
Regards,
Rob Philpott.
|
|
|
|
|
Thanks Rob. I don't want to do that.
I've wanted to know.
|
|
|
|