|
At first I do like This
=> using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using Microsoft.CSharp;
using Microsoft.SqlServer.Server;
using System.Data;
using System.Data.SqlClient;
namespace AITania
{
class Program
{
//public static void InsertTrigger()
//{
// SqlTriggerContext triggerContext = SqlContext.GetTriggerContext();
// SqlPipe sqlPipe = SqlContext.GetPipe();
// SqlCommand command = SqlContext.GetCommand();
// if (triggerContext.TriggerAction == System.Data.Sql.TriggerAction.Insert)
// {
// command.CommandText = "SELECT * FROM INSERTED";
// sqlPipe.Execute(command);
// }
//}
static void Main(string[] args)
{
//---------------------------Database connection
SqlConnection conn = new SqlConnection("Data Source=DIMENSION3000\\SQLEXPRESS; Initial Catalog=AITania; User Id=sa; Password=123456");
DataSet AlertDataSet = new DataSet();
SqlDataAdapter da;
SqlCommandBuilder cmdBuilder;
//--------------------------Open Connection
conn.Open();
da = new SqlDataAdapter("SELECT * FROM AIEvent", conn);
cmdBuilder = new SqlCommandBuilder(da);
da.Fill(AlertDataSet, "AIEvent");
//-------------------------Displaying error
foreach (DataRow dr in AlertDataSet.Tables[0].Rows)
{
Console.WriteLine("EventID: {0}", dr["EventID"]);
Console.WriteLine("Time of Occur: {0}", dr["TimeOfOccur"]);
Console.WriteLine("Location: {0}", dr["LocationID"]);
Console.WriteLine("");
}
Console.ReadLine();
//--------------------------Close Connection
conn.Close();
//AIClass.AICheck.checkUserRole();
}
}
}
|
|
|
|
|
then after i have read about the trigger..I do like this (will call AIClass at the main class):
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Server;
using System.Data;
using System.Data.SqlClient;
namespace AIClass
{
public class AICheck
{
[SqlTrigger(Event = "FOR INSERT", Name = "AITrigger", Target = "AIEvent")]
public static void checkUserRole()
{
//if (!SqlContext.IsAvailable)
//{
// Console.Write("Context none");
// Console.Read();
//}
//else
//{
SqlTriggerContext tgContext = SqlContext.TriggerContext;
SqlConnection conn = new SqlConnection("Data Source=DIMENSION3000\\SQLEXPRESS; Initial Catalog=AITania; User Id=sa; Password=123456");
using ( conn = new SqlConnection("context connection=true"))
{
conn.Open();
//SqlCommand cmd = conn.CreateCommand();
SqlDataReader reader;
//cmd.ExecuteNonQuery();
string msg = "";
if (tgContext.TriggerAction == TriggerAction.Insert)
{
SqlCommand sqlComm = new SqlCommand("SELECT * FROM INSERTED",conn);
//cmd.CommandText = "SELECT * FROM INSERTED";
SqlContext.Pipe.ExecuteAndSend(sqlComm);
//reader = cmd.ExecuteReader();
//sqlComm.Connection = conn;
//sqlComm.CommandText = "SELECT * FROM INSERTED";
//for (int x = 0; x < tgContext.ColumnCount; ++x)
//{
// msg += string.Format("Column {0} {1} been updated{2}", x, (tgContext.IsUpdatedColumn(x) ? "has" : "has not"), Environment.NewLine);
//}
for (int i = 0; i < reader.FieldCount; i++)
{
msg = msg + reader.GetName(i) + ":" + (string)reader[i] + " ";
}
} conn.Close();
}
//}
}
}
}
|
|
|
|
|
Oh, IC...
Now can I see your trigger query?
Regard,
Edwin
|
|
|
|
|
this is my trigger:
CREATE TRIGGER AITrigger ON AIEvent
FOR INSERT
AS
EXTERNAL NAME [AIClass].[AIClass.AICheck].[checkUserRole]
|
|
|
|
|
Maybe U must check your trigger query again..., because ic on your code there is no problem.
Or U can goto msdn forum.
Regard,
Edwin
|
|
|
|
|
ok then...thanks a lot for helping me..
regard,
jac
|
|
|
|
|
Hi,
I have an MS Access database which has password. Now I can open the database using the password from MS Access, but when I try to test connection from Visual Studio Connection String Settings Design Time Windows Form, I get message that "Not a valid password". Still, I tried to connect to that password protected MS Access database from C# using the connection string with password, and then when I run the application, I get Database Connection error message. Is there anything I am missing ? Would you please help me.
Thanks.
|
|
|
|
|
Probably it has to do with the connection string. Have you checked it's correct?
See here for more information: ConnectionStrings.com[^]
|
|
|
|
|
Hi Luis,
Thanks for your reply. Actually I tried with the correct Connection String, but looks like, only MS Access application can take the password to open the protected Mdb database and not from outside. Becauuse, In the Settings editor in Visual Studio, I used the designer to locate the MS Access database and provided the password to Test Connection, I get error from that designer with the message "Not a valid password".
Is there any possible reason for this ?
Regards
|
|
|
|
|
Can you remove the password from the database through Access? Are you sure you have the right password? I just created a password protected Access database and the connection strings work fine
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:Database Password=MyDbPassword; is the one I used.
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
Hi guys,
I have never done console programming and I need some help, basically what I am hoping to do is run a SQL alter table statement from a Console application. First is this possible? if so, please help!!!!
Thanks in advance
sasa
|
|
|
|
|
There is nothing special about a Console app, it resembles a Windows app
with a single empty Form, no Controls, and all code executing sequentially
(as if in the Form's constructor or Load event).
You can use all classes you want, do threading, whatever.
Your "GUI" is limited to Console.Write/WriteLine/Read/ReadLine.
Of course, a Console app can also create and show Forms, Dialogs, etc.
There is one thing a Console app cannot do: not show a console at all
(you can hide it, but it will show at start);
If all you need is an app with a command line interface, then you dont want
a Console app, you want a Windows app that does not show its main form, instead
it reads the command line (from Main() parameter or thru Environment.GetCommand...)
|
|
|
|
|
Sure - the ADO.NET classes are available to you in a console app, just like a windows one. You'd use the same code in both cases, to run the SQL that alters the table.
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
SASA_1 wrote: hoping to do is run a SQL alter table statement from a Console application
It can be done and there is nothing special about it being a console app. You can do the same as if it were a Windows app
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
Hi all,
My boss wants me to write a small console app that runs at midnight everynight. The app opens up a "job file" (in this case, the job file will have a list of training days that people will be attending), connects to the exchange server (via the admin login?), opens that users calender and inserts that training day into his/her calender. If the user deletes the appointment, the app will create it again....
the only trouble im having is connecting to the exchange server at the "top level" as an admin so i can open a users calender and create/modify their appointments...
Does anyone have any suggestions / controls i can purchase that will help me build this app?
Many thanks,
Will
|
|
|
|
|
here is a question for you, at the moment how are you interacting with the Exchange server programmatically ? Are you using the IMAP protocol to access the exchange server.
With regards to purchasing controls, you dont have to. If you use .NET 3.0- 3.5, WCF has web services that can interact with Exchange Server 2003 and 2007. The other thing you can do if you dont want to use the new framework and still use .NET 2.0 then use the Lumisoft DLL.
Here is the link
http://www.lumisoft.ee/lswww/ENG/Products/Mail_Server/mail_index_eng.aspx?type=download
With regards to logging in, my recommendation would see if you can TELNET into the Exchange Server and excute an IMAP login process using the administrator username and password. You will need to google about using TELENT IMAP calls to Exchange Server.
I have used the lumisoft DLL successfully to build an application that interacted with Exchange 2003. So if you need more help then feel free to post more questions.
|
|
|
|
|
Hi,
I want to write a 'simple' program that reads a text file and makes the data in this text file available via a serial port. I'm developing a program which reads GPS data from the serial port. For now, I made the GPSDataSource abstract. So, I can read from the file directly, but i want to test the SerialPortGPSDataSource also. I don't have a GPS at home, so a GPS simulator would be great.
I don't want to use any 3rd party programs. I want to be capable of doing it myself. Is there anybody that can point me to some source, info, whatever to get me started, because I 'm googling now for hours and I didn't find any useful (as far as i know).
Thanks!
|
|
|
|
|
Hi,
There are some articles here about SerialPort
bridging the gap between a SerialPort and a file should be easy
simulating the timing aspects of a GSM may be more difficult.
there is a freeware null modem emulator called com0com
it creates two virtual COM ports that behave as if interconnected by a null modem,
so you can have your app talk to one of them, and the GSM simulator to the other one.
|
|
|
|
|
|
Hello experts,
My application uses the Settings.settings file defined by VS, along with controls' ApplicationSettings property.
When defining a new setting in the settings file, it is possible to set its type to every type defined in the assemblies referenced by the application, but not the assemblies defined by the application.
My application defines an enumeration, but I cannot use it as a setting type.
Is there any workaround for the problem?
Thanks in advance,
Shy.
|
|
|
|
|
I have a form that has a Done button. I set the DialogResult property for the button to "OK". When I click the button, I want the app to close, but nothing happens. What am I missing?
"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
|
|
|
|
|
I'm assuming you mean you want to make a messagebox button close the form, not a button on the form itself??!
If you want to make the messagebox button do something then...
DialogResult dr = MessageBox.Show("Text here", "Header Here", MessageBoxButtons.OK);
switch (dr)
{
case DialogResult.OK:
this.Dispose(); //Or whatever
break;
}
If the button is on the form itself. Just double click on it in the designer screen, C# automatically generates everything for you, so all you need to type is "this.Dispose();" in the method.
Hope this helps.
Mark
|
|
|
|
|
On the form itself is a property for which button sends the OK, but that's actually just used for pressing enter to click OK. I'm not sure why it wouldn't close, it should. One nasty behaviour in .NET is, if you have a form with an OK button and it has a child with an OK button, pressing OK will close them both. But, obviously, you have the reverse going on. I'd just handle the click, and call the Close() method ( I would NOT call this.Dispose() )
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
Calling Close() did the trick. I just got done doing a C# version of my persistent string parser, and this was the last thing I had to address before writing an article on. If you're really bored, you can try to find out why I had to do this (calling Close).
"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
|
|
|
|
|
I do a terrible job of keeping up with my email notifications, did you resolve the ASP.NET issue you had the other day ?
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|