|
Ah! To create a new instance, you need to tell it that the only classes that can be "generic-ed" are concrete classes (like OldedbConnection, and SqlConnection), not abstract classes like DbConnection.
That's easy: add the new constraint (and remove the class instance from the parameters list):
private T DataConnection<T>(int index_of_mydatafile) where T : System.Data.Common.DbConnection, new()
{
T db_conn_obj = new T();
db_conn_obj.ConnectionString = "...";
db_conn_obj.Open();
return db_conn_obj;
}
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Holy crap, man! That's freak'n awesome! It's a double ++ because the original code doesn't include the class instance in the parameters list.
This is the first time I actually posted a question on any programmer's forum. I wish I had done this sooner.
I really appreciate it.
|
|
|
|
|
You're welcome!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
RickBishop wrote: I'm supposed to make work with both OleDbConnection as well as SqlConnection.
Could be done fairly easy without generics. See A short tale on two patterns that live in .NET[^].
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
This is very applicable. I will take a look. Thanks for sharing!
|
|
|
|
|
You're welcome, and thanks
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
What do you need, and what do the connections have in common?
You will find that OldDbConnection and SqlConnection (among others) inherit from Common.DbConnection (which also has an interface).
You can pass a class instance that another class "inherits" from (or an interface) if it meets your requirements instead of having to resort to generics (in this case).
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
I'm very new to Active Directory, so bear with me please...
First
I'm using the following to validate a user:
public bool ValidateUser(Credentials credentials, string userName = "", string password = "")
{
using (var context = new PrincipalContext(ContextType.Domain, credentials.ServerName, credentials.UserName, credentials.Password))
{
return context.ValidateCredentials(userName, password);
}
}
But the ValidateCredentials takes the password in PLAIN TEXT and it works fine. This doesn't seem right. How is encryption handled? How do you encrypt the text and how does AD know the PW is encrypted?
Second
Next, I know that LDAP is a protocol. From what I see you specify LDAP in the
query string, as in "LDAP://OU=staffusers,DC=leeds-art,DC=ac,DC=uk"
Is this the way it's done? How do you specify another protocol to use?
Thanks
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
Ya can't fix stupid.
|
|
|
|
|
1) You don't encrypt the text. You're correct is questioning "how does AD know the PW is encrypted?". It doesn't. The function you're calling is running on your machine, not the server. The method hashes the password for you, gets the encrypted account details, including password, from the domain controller and makes the comparison locally. The password never leaves the machine.
2) Go through this: Howto: (Almost) Everything In Active Directory via C#[^]
System.ItDidntWorkException: Something didn't work as expected.
C# - How to debug code[ ^].
Seriously, go read these articles.
Dave Kreskowiak
|
|
|
|
|
Dave Kreskowiak wrote: 1) You don't encrypt the text. You're correct is questioning "how does AD know the PW is encrypted?". It doesn't. The function you're calling is running on your machine, not the server. The method hashes the password for you, gets the encrypted account details, including password, from the domain controller and makes the comparison locally. The password never leaves the machine.
I figured that's what happening. Do you know of any docs that state this?
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
Ya can't fix stupid.
|
|
|
|
|
Only the training materials I had way back in the day.
System.ItDidntWorkException: Something didn't work as expected.
C# - How to debug code[ ^].
Seriously, go read these articles.
Dave Kreskowiak
|
|
|
|
|
Kevin Marois wrote: But the ValidateCredentials takes the password in PLAIN TEXT and it works fine. This doesn't seem right. How is encryption handled? How do you encrypt the text and how does AD know the PW is encrypted? Did you even consider a scenario where it is not encrypted?
Kevin Marois wrote: Is this the way it's done? How do you specify another protocol to use? By prefixing it with the protocol-handler[^]. For ftp we use the ftp:// prefix, for webpages http, etc. You can even register custom prefixes.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Good morning to all!
I need to show two headers in a listview control, I've been looking for information about it, but I don't found it.
Can help me?
|
|
|
|
|
Yes, use the WPF ListView's GridView.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
Create your own customized Listview which basicly is a UserControl.
Inside this UserControl you have your Headers a needed (Labels) and the ListView under the Header-Labels.
|
|
|
|
|
Hello, I have inherited some C#.NET code that builds a dynamic dashboard on page load. The dynamic dashboard consists of a table and 2 rows - one row showing online devices, the other row showing offline devices. My issue is that if there are more than 5 devices on a given row, the row gets cluttered and looks terrible. I would like to break the line at 4 devices, but I am so confused by the logic. I have spent the last 48 hours swirling through this code and trying to find where to break the line and how - I am still lost. Please, any help would be very much appreciated. Please see a snapshot of the code below. Thank you so much in advance. -Jason
protected void Page_Load(object sender, EventArgs e)
{
if (this.Session["UserID"] == null)
{
Response.Redirect("Login.aspx");
}
Response.AppendHeader("Refresh", "8");
HtmlMeta meta = new HtmlMeta();
meta.HttpEquiv = "Content-Language";
meta.Content = "en";
MetaPlaceHolder.Controls.Add(meta);
List<TableCell> OnCells = new List<TableCell>();
List<TableCell> OffCells = new List<TableCell>();
DataTable dt = DatabaseObjects.UserDO.GetAllBoardID(Int32.Parse(this.Session["UserID"].ToString()));
foreach (DataRow r in dt.Rows)
{
string inner = r["DeviceType"].ToString();
TableCell cell = new TableCell();
DataTable FonaDT = new DataTable();
DataTable dt2 = new DataTable();
DataTable fonaReturn = new DataTable();
DataTable normalReturn = new DataTable();
DateTime now = new DateTime();
if (DatabaseObjects.UserDO.IsFona(r["BoardID"].ToString()))
{
FonaDT = DatabaseObjects.UserDO.GetFonaSensors(r["BoardID"].ToString());
}
else
{
dt2 = DatabaseObjects.UserDO.GetSensorIDFromBoardID(r["BoardID"].ToString());
}
if (FonaDT.Rows.Count > 0)
{
int count = 0;
foreach (DataRow r2 in FonaDT.Rows)
{
if (count > 0)
{
cell = new TableCell();
cell.HorizontalAlign = HorizontalAlign.Center;
fonaReturn = DatabaseObjects.UserDO.GetDashboardData(r["BoardID"].ToString(), r2["sensor_name"].ToString());
if (fonaReturn.Rows.Count > 0)
{
now = DateTime.Now;
DateTime LastData = DateTime.Parse(fonaReturn.Rows[0]["ts_Datetime"].ToString());
TimeSpan diff = now.Subtract(LastData);
if (diff.TotalSeconds <= 120)
{
cell.Text += "<div class=\"badgeOn\">" + "<label style=\"font-size:small !important; color:#67BCDB;text-decoration:underline; font-weight:bold !important;\">" + inner + "</label>";
cell.Text += "</br>" + r2["sensor_name"].ToString();
cell.Text += "</br> <label style=\"color:red\">" + "Last Value: " + fonaReturn.Rows[0]["value"].ToString() + "</label>";
cell.Text += "</div>";
OnCells.Add(cell);
}
else
{
cell.Text += "<div class=\"badgeOff\">" + "<label style=\"font-size:small !important; color:#67BCDB;text-decoration:underline; font-weight:bold !important;\">" + inner + "</label>";
cell.Text += "</br>" + r2["sensor_name"].ToString();
cell.Text += "</br> Last Online: " + LastData.ToString("MM/dd/yyyy hh:mm tt");
cell.Text += "</br> <label style=\"color:red\">" + "Last Value: " + fonaReturn.Rows[0]["value"].ToString() + "</label>";
cell.Text += "</div>";
OffCells.Add(cell);
}
}
else
{
cell.Text += "<div class=\"badgeOff\">" + "<label style=\"font-size:small !important; color:#67BCDB;text-decoration:underline; font-weight:bold !important;\">" + inner + "</label>";
cell.Text += "</br>" + r2["sensor_name"].ToString();
cell.Text += "</br> Last Online: " + " N/A"+"</br>";
cell.Text += "</br> <label style=\"color:red\">" + "Last Value: N/A" + "</label>";
OffCells.Add(cell);
}
}
else
{
cell = new TableCell();
cell.HorizontalAlign = HorizontalAlign.Center;
fonaReturn = DatabaseObjects.UserDO.GetDashboardData(r["BoardID"].ToString(), r2["sensor_name"].ToString());
if (fonaReturn.Rows.Count > 0)
{
now = DateTime.Now;
DateTime LastData = DateTime.Parse(normalReturn.Rows[0]["ts_Datetime"].ToString());
TimeSpan diff = now.Subtract(LastData);
if (diff.TotalSeconds <= 120)
{
cell.Text += "<div class=\"badgeOn\">" + "<label style=\"font-size:small !important; color:#67BCDB;text-decoration:underline; font-weight:bold !important;\">" + inner + "</label>";
cell.Text += "</br>" + r2["sensor_name"].ToString();
cell.Text += "</br> <label style=\"color:red\">" + "Last Value: " + fonaReturn.Rows[0]["value"].ToString() + "</label>";
cell.Text += "</div>";
OnCells.Add(cell);
}
else
{
cell.Text += "<div class=\"badgeOff\">" + "<label style=\"font-size:small !important; color:#67BCDB;text-decoration:underline; font-weight:bold !important;\">" + inner + "</label>";
cell.Text += "</br>" + r2["sensor_name"].ToString();
cell.Text += "</br> Last Online: " + LastData.ToString("MM/dd/yyyy hh:mm tt");
cell.Text += "</br> <label style=\"color:red\">" + "Last Value: " + fonaReturn.Rows[0]["value"].ToString() + "</label>";
cell.Text += "</div>";
OffCells.Add(cell);
}
}
else
{
cell.Text += "<div class=\"badgeOff\">" + "<label style=\"font-size:small !important; color:#67BCDB;text-decoration:underline; font-weight:bold !important;\">" + inner + "</label>";
cell.Text += "</br>" + r2["sensor_name"].ToString();
cell.Text += "</br> Last Online: " + " N/A" + "</br>";
cell.Text += "</br> <label style=\"color:red\">" + "Last Value: N/A" + "</label>";
cell.Text += "</div>";
OffCells.Add(cell);
}
}
count++;
}
}
if (dt2.Rows.Count > 0)
{
int count2 = 0;
foreach (DataRow r3 in dt2.Rows)
{
if (count2 > 0)
{
cell = new TableCell();
cell.HorizontalAlign = HorizontalAlign.Center;
normalReturn = DatabaseObjects.UserDO.GetDashboardData(r["BoardID"].ToString(), r3["SensorID"].ToString());
if (normalReturn.Rows.Count > 0)
{
now = DateTime.Now;
DateTime LastData = DateTime.Parse(normalReturn.Rows[0]["ts_Datetime"].ToString());
TimeSpan diff = now.Subtract(LastData);
if (diff.TotalSeconds <= 120)
{
cell.Text += "<div class=\"badgeOn\">" + "<label style=\"font-size:small !important; color:#67BCDB;text-decoration:underline; font-weight:bold !important;\">" + inner + "</label>";
cell.Text += "</br>" + r3["SensorID"].ToString();
cell.Text += "</br> <label style=\"color:red\">" + "Last Value: " + normalReturn.Rows[0]["value"].ToString() + "</label>";
cell.Text += "</div>";
OnCells.Add(cell);
}
else
{
cell.Text += "<div class=\"badgeOff\">" + "<label style=\"font-size:small !important; color:#67BCDB;text-decoration:underline; font-weight:bold !important;\">" + inner + "</label>";
cell.Text += "</br>" + r3["SensorID"].ToString();
cell.Text += "</br> Last Online: " + LastData.ToString("MM/dd/yyyy hh:mm tt");
cell.Text += "</br> <label style=\"color:red\">" + "Last Value: " + normalReturn.Rows[0]["value"].ToString() + "</label>";
cell.Text += "</div>";
OffCells.Add(cell);
}
}
else
{
cell.Text += "<div class=\"badgeOff\">" + "<label style=\"font-size:small !important; color:#67BCDB;text-decoration:underline; font-weight:bold !important;\">" + inner + "</label>";
cell.Text += "</br>" + r3["SensorID"].ToString();
cell.Text += "</br> Last Online: " + " N/A" + "</br>";
cell.Text += "</br> <label style=\"color:red\">" + "Last Value: N/A" + "</label>";
cell.Text += "</div>";
OffCells.Add(cell);
}
}
else
{
cell = new TableCell();
normalReturn = DatabaseObjects.UserDO.GetDashboardData(r["BoardID"].ToString(), r3["SensorID"].ToString());
cell.HorizontalAlign = HorizontalAlign.Center;
if (normalReturn.Rows.Count > 0)
{
now = DateTime.Now;
DateTime LastData = DateTime.Parse(normalReturn.Rows[0]["ts_Datetime"].ToString());
TimeSpan diff = now.Subtract(LastData);
if (diff.TotalSeconds <= 120)
{
cell.Text += "<div class=\"badgeOn\">" + "<label style=\"font-size:small !important; color:#67BCDB;text-decoration:underline; font-weight:bold !important;\">" + inner + "</label>";
cell.Text +="</br>"+ r3["SensorID"].ToString();
cell.Text += "</br> <label style=\"color:red\">" + "Last Value: " + normalReturn.Rows[0]["value"].ToString() + "</label>";
cell.Text += "</div>";
OnCells.Add(cell);
}
else
{
cell.Text += "<div class=\"badgeOff\">" + "<label style=\"font-size:small !important; color:#67BCDB;text-decoration:underline; font-weight:bold !important;\">" + inner + "</label>";
cell.Text += "</br>" + r3["SensorID"].ToString();
cell.Text += "</br> Last Online: " + LastData.ToString("MM/dd/yyyy hh:mm tt");
cell.Text += "</br> <label style=\"color:red\">" + "Last Value: " + normalReturn.Rows[0]["value"].ToString() + "</label>";
cell.Text += "</div>";
OffCells.Add(cell);
}
}
else
{
cell.Text += "<div class=\"badgeOff\">" + "<label style=\"font-size:small !important; color:#67BCDB;text-decoration:underline; font-weight:bold !important; \">" + inner + "</label>";
cell.Text += "</br>" + r3["SensorID"].ToString();
cell.Text += "</br> Last Online: " + " N/A"+"</br>";
cell.Text += "</br> <label style=\"color:red\">" + "Last Value: N/A" + "</label>";
cell.Text += "</div>";
OffCells.Add(cell);
}
}
count2++;
}
}
}
TableRow OnRow = new TableRow();
TableRow OffRow = new TableRow();
TableCell onHead = new TableCell();
TableCell offHead = new TableCell();
onHead.Text = "<div class=\"horoOn\">Online</div>";
onHead.BackColor = System.Drawing.Color.Gray;
onHead.ColumnSpan = 30;
OnRow.Cells.Add(onHead);
offHead.Text = "<div class=\"horoOff\">Offline</div>";
offHead.BackColor = System.Drawing.Color.Gray;
offHead.ColumnSpan = 30;
OffRow.Cells.Add(offHead);
Unit p = new Unit(200, UnitType.Pixel);
OnRow.Width = p;
OnRow.Height = p;
OffRow.Width = p;
OffRow.Height = p;
foreach (TableCell c in OnCells)
{
OnRow.Cells.Add(c);
}
foreach (TableCell c2 in OffCells)
{
OffRow.Cells.Add(c2);
}
table1.Rows.Add(OnRow);
table1.Rows.Add(OffRow);
}
|
|
|
|
|
Any sane person will tell you to "start over"; beginning with a mockup of the intended output.
A mini death march otherwise.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
All,
I am new to C# code, I am trying to achieve copying the file from SFTP location to SQL Azure using SQL Bulk copy method. This I can achieve,but when I am trying to use foreach loop to read multiple files from SFTP file list I couldn’t able do it.
I can’t copy paste my code here, could some one out here help me out how can I achieve this specific to Azure DB ?
TIA.
Naveen A
|
|
|
|
|
Sooooo, you want help fixing your code which we can't see and can't possibly guess at what it looks like?
Good luck with that.
System.ItDidntWorkException: Something didn't work as expected.
C# - How to debug code[ ^].
Seriously, go read these articles.
Dave Kreskowiak
|
|
|
|
|
Maybe try one file first.
Maybe you're eating your lunch too fast.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
Thank you , I tried with one file it is working fine.When I try to loop Multiple files coming from SFTP source I am having this issue.
|
|
|
|
|
Try 2 in a row.
Wrap it in a try ... catch block and display the exception, if any.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
What issue? Unless you explain clearly what the problem is, and show the failing code then we cannot help.
|
|
|
|
|
How can I tell if Active Directory has been configured/enabled?
Thanks
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
Ya can't fix stupid.
|
|
|
|
|
You're going to have to go into detail about what you mean by "configured/enabled".
Are you asking how to find out if AD is running on a remote server?
System.ItDidntWorkException: Something didn't work as expected.
C# - How to debug code[ ^].
Seriously, go read these articles.
Dave Kreskowiak
|
|
|
|