Why can't the "+" operator work with a string variable to concaten

G

Guest

Hi, I want to concatenate a string variable (containing file path and name)
to a sqlcommnad text string but I'm getting error about "+" can't be used
with string operand. It's very odd. What am I doing wrong?

Thanks, Alpha

try
{//@"C:\\VMS\\VMSDB"
string[] ATSFiles = Directory.GetFiles(@strATSPath, "Ats*Db.mdb");
Array.Sort(ATSFiles);
NewATS= ATSFiles[ATSFiles.Length - 1];
}
catch(Exception ex)
{
MessageBox.Show("Error getting the ATS Access database files : " +
ex.ToString()+
"Please contact your support person.", "VMS - ATS files Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);

}

try
{
//Insert new vehicle from the ATS Access database
scUpdate.CommandText = "INSERT INTO VehDetail(VName, LastOdometerDate,
LastOdometerReading)"+
" SELECT [d_RemoteName],MAX([d_DateTime]), MAX([d_OdometerTenths])"+
" FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',"+
+ @NewATS + "';'Admin';'', DATA)"+
" WHERE [d_RemoteName] NOT IN(SELECT VNAME FROM VehDetail)"+
" GROUP BY [d_RemoteName]";
int row = scUpdate.ExecuteNonQuery();
 
C

carion1

FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',"+ + @NewATS + "';'Admin';'',
DATA)"+
---------------------------------------------------------^
 
P

Peter Rilling

It might be having a problem with @NewATS since this is not quoted or
anything and I would imaging that "@" is not a valid variable character.
Just a guess though.
 
C

carion1

Bleh stupid wrapping...

('Microsoft.Jet.OLEDB.4.0',"+ + @NewATS + "';'Admin';'', DATA)
-------------------------------^
--

Derek Davis
(e-mail address removed)

carion1 said:
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',"+ + @NewATS + "';'Admin';'',
DATA)"+
---------------------------------------------------------^
--

Derek Davis
(e-mail address removed)

Alpha said:
Hi, I want to concatenate a string variable (containing file path and
name)
to a sqlcommnad text string but I'm getting error about "+" can't be used
with string operand. It's very odd. What am I doing wrong?

Thanks, Alpha

try
{//@"C:\\VMS\\VMSDB"
string[] ATSFiles = Directory.GetFiles(@strATSPath, "Ats*Db.mdb");
Array.Sort(ATSFiles);
NewATS= ATSFiles[ATSFiles.Length - 1];
}
catch(Exception ex)
{
MessageBox.Show("Error getting the ATS Access database files : " +
ex.ToString()+
"Please contact your support person.", "VMS - ATS files Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);

}

try
{
//Insert new vehicle from the ATS Access database
scUpdate.CommandText = "INSERT INTO VehDetail(VName, LastOdometerDate,
LastOdometerReading)"+
" SELECT [d_RemoteName],MAX([d_DateTime]), MAX([d_OdometerTenths])"+
" FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',"+
+ @NewATS + "';'Admin';'', DATA)"+
" WHERE [d_RemoteName] NOT IN(SELECT VNAME FROM VehDetail)"+
" GROUP BY [d_RemoteName]";
int row = scUpdate.ExecuteNonQuery();
 
C

carion1

LOL. Thats what I get for trying to be cute. You have ++ after
OLEDB.4.0',"

FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',"+ + @NewATS + "';'Admin';'',
DATA)"+

--

Derek Davis
(e-mail address removed)

Peter Rilling said:
It might be having a problem with @NewATS since this is not quoted or
anything and I would imaging that "@" is not a valid variable character.
Just a guess though.

Alpha said:
Hi, I want to concatenate a string variable (containing file path and
name)
to a sqlcommnad text string but I'm getting error about "+" can't be used
with string operand. It's very odd. What am I doing wrong?

Thanks, Alpha

try
{//@"C:\\VMS\\VMSDB"
string[] ATSFiles = Directory.GetFiles(@strATSPath, "Ats*Db.mdb");
Array.Sort(ATSFiles);
NewATS= ATSFiles[ATSFiles.Length - 1];
}
catch(Exception ex)
{
MessageBox.Show("Error getting the ATS Access database files : " +
ex.ToString()+
"Please contact your support person.", "VMS - ATS files Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);

}

try
{
//Insert new vehicle from the ATS Access database
scUpdate.CommandText = "INSERT INTO VehDetail(VName, LastOdometerDate,
LastOdometerReading)"+
" SELECT [d_RemoteName],MAX([d_DateTime]), MAX([d_OdometerTenths])"+
" FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',"+
+ @NewATS + "';'Admin';'', DATA)"+
" WHERE [d_RemoteName] NOT IN(SELECT VNAME FROM VehDetail)"+
" GROUP BY [d_RemoteName]";
int row = scUpdate.ExecuteNonQuery();
 
G

Guest

I tried without the @ and it still gives the same error message.

Peter Rilling said:
It might be having a problem with @NewATS since this is not quoted or
anything and I would imaging that "@" is not a valid variable character.
Just a guess though.

Alpha said:
Hi, I want to concatenate a string variable (containing file path and
name)
to a sqlcommnad text string but I'm getting error about "+" can't be used
with string operand. It's very odd. What am I doing wrong?

Thanks, Alpha

try
{//@"C:\\VMS\\VMSDB"
string[] ATSFiles = Directory.GetFiles(@strATSPath, "Ats*Db.mdb");
Array.Sort(ATSFiles);
NewATS= ATSFiles[ATSFiles.Length - 1];
}
catch(Exception ex)
{
MessageBox.Show("Error getting the ATS Access database files : " +
ex.ToString()+
"Please contact your support person.", "VMS - ATS files Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);

}

try
{
//Insert new vehicle from the ATS Access database
scUpdate.CommandText = "INSERT INTO VehDetail(VName, LastOdometerDate,
LastOdometerReading)"+
" SELECT [d_RemoteName],MAX([d_DateTime]), MAX([d_OdometerTenths])"+
" FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',"+
+ @NewATS + "';'Admin';'', DATA)"+
" WHERE [d_RemoteName] NOT IN(SELECT VNAME FROM VehDetail)"+
" GROUP BY [d_RemoteName]";
int row = scUpdate.ExecuteNonQuery();
 
G

Guest

Gees........ After you point it out it still took me another 10 minuttes to
SEE the extra "+". Thank you very much.

carion1 said:
Bleh stupid wrapping...

('Microsoft.Jet.OLEDB.4.0',"+ + @NewATS + "';'Admin';'', DATA)
-------------------------------^
--

Derek Davis
(e-mail address removed)

carion1 said:
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',"+ + @NewATS + "';'Admin';'',
DATA)"+
---------------------------------------------------------^
--

Derek Davis
(e-mail address removed)

Alpha said:
Hi, I want to concatenate a string variable (containing file path and
name)
to a sqlcommnad text string but I'm getting error about "+" can't be used
with string operand. It's very odd. What am I doing wrong?

Thanks, Alpha

try
{//@"C:\\VMS\\VMSDB"
string[] ATSFiles = Directory.GetFiles(@strATSPath, "Ats*Db.mdb");
Array.Sort(ATSFiles);
NewATS= ATSFiles[ATSFiles.Length - 1];
}
catch(Exception ex)
{
MessageBox.Show("Error getting the ATS Access database files : " +
ex.ToString()+
"Please contact your support person.", "VMS - ATS files Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);

}

try
{
//Insert new vehicle from the ATS Access database
scUpdate.CommandText = "INSERT INTO VehDetail(VName, LastOdometerDate,
LastOdometerReading)"+
" SELECT [d_RemoteName],MAX([d_DateTime]), MAX([d_OdometerTenths])"+
" FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',"+
+ @NewATS + "';'Admin';'', DATA)"+
" WHERE [d_RemoteName] NOT IN(SELECT VNAME FROM VehDetail)"+
" GROUP BY [d_RemoteName]";
int row = scUpdate.ExecuteNonQuery();
 
M

Michael A. Covington

" FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',"+
+ @NewATS + "';'Admin';'', DATA)"+

You have two pluses in a row.
 
B

Brian Gideon

As odd as it sounds "@" really is a valid character in a variable
identifier. It allows you to use reserved keywords as variable names.
I haven't really seen a compelling reason to use it though.

Brian
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top