|
Just google ADO.NET, there are thousands of examples
Bob
Ashfield Consultants Ltd
Proud to be a 2009 Code Project MVP
|
|
|
|
|
|
That's not a procedure; it's just a simple query. I'd pass it to ExecuteScalar, that's what it's for.
As the other person said; read up on ADO.NET.
|
|
|
|
|
Here's a helper class I use. It's lightweight but contains a few useful methods. Create a new class in your project and call it 'DbAssist' and copy this code in there. I haven't documented the methods so if you have trouble understanding anything just reply and I will assist. Cheers
using System;
using System.Configuration;
using System.Data;
namespace Common.Data {
public static class DbAssist {
private static void CheckConnectionClosed(IDbConnection connection) {
if (connection.State != ConnectionState.Closed) {
throw new InvalidOperationException("An error has occurred: connection is not in closed state.");
}
}
public static string GetConnectionString(string key) {
try {
return ConfigurationManager.ConnectionStrings[key].ConnectionString;
} catch (NullReferenceException ex) {
throw new ConfigurationErrorsException("An error has occurred: "
+ key + " does not exist in config.", ex);
}
}
public static object ExecScalar(string sqlText, IDbConnection connection) {
return ExecScalar(sqlText, connection, CommandType.Text);
}
public static object ExecScalar(string sqlText, IDbConnection connection, CommandType cmdType) {
return ExecScalar(sqlText, connection, cmdType, null);
}
public static object ExecScalar(string sqlText, IDbConnection connection,
CommandType cmdType, IDataParameter[] parameters) {
CheckConnectionClosed(connection);
using (connection) {
connection.Open();
IDbCommand command = connection.CreateCommand();
command.CommandText = sqlText;
command.CommandType = CommandType.StoredProcedure;
if (parameters != null) {
foreach (IDataParameter p in parameters) {
command.Parameters.Add(p);
}
}
return command.ExecuteScalar();
}
}
public static IDataReader ExecReader(string sqlText, IDbConnection connection) {
return ExecReader(sqlText, connection, CommandBehavior.CloseConnection);
}
public static IDataReader ExecReader(string sqlText, IDbConnection connection,
CommandBehavior behavior) {
return ExecReader(sqlText, connection, CommandType.Text, behavior);
}
public static IDataReader ExecReader(string sqlText, IDbConnection connection,
CommandType cmdType, CommandBehavior behavior) {
CheckConnectionClosed(connection);
connection.Open();
IDbCommand command = connection.CreateCommand();
command.CommandText = sqlText;
command.CommandType = cmdType;
return command.ExecuteReader(behavior);
}
public static IDataReader ExecReader(string sqlText, IDbConnection connection,
CommandType cmdType, IDataParameter[] parameters, CommandBehavior behavior) {
CheckConnectionClosed(connection);
IDbCommand command = connection.CreateCommand();
command.CommandText = sqlText;
command.CommandType = cmdType;
if (parameters != null) {
foreach (IDataParameter p in parameters) {
command.Parameters.Add(p);
}
}
return command.ExecuteReader(behavior);
}
public static T GetDataFromReader<T>(IDataReader reader, string fieldName, T fallbackValue) {
int ordinal = reader.GetOrdinal(fieldName);
if (!reader.IsDBNull(ordinal)) {
return (T)reader.GetValue(ordinal);
}
return fallbackValue;
}
}
}
|
|
|
|
|
Hi,
I want to Write DWORD Value in HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer.
My application writes the value registry only if i run my application as an administrator on vista.
I want on normal exe execution.
and I dont want to disable UAC on vista.
Reply ASAP.
Regars,
Sunil G.
|
|
|
|
|
You can atempt to change permision, althou i think UAC will prevent. Other option is to modify your manifest, so that your app runs in admin mode. But everytime you open application, it will pop up UAC confirmation window.
|
|
|
|
|
Hi,
I Dont want UAC confirmation window.
Regards,
Sunil G.
|
|
|
|
|
At install time for your application (because you will be running your app as admin at installation) set the ACL for that specific Registry Entry and allow users to write to it.
This will ge you started:
this [^]
|
|
|
|
|
Hello, I am using date time picker to display month and a year. How can i make calendar not to show days, only Month and a year?
|
|
|
|
|
Set the DateTimePicker's properties :
Format: Custom
CustomFormat: MM.yyyy
I Love T-SQL
"Don't torture yourself,let the life to do it for you."
If my post helps you kindly save my time by voting my post.
www.aktualiteti.com
|
|
|
|
|
You have missunderstood me, It does display as i want, but when i bring up calendar, there I can see days, but i do not wan't it to be seen
|
|
|
|
|
Well, in Load event write code to format your DateTimePicker.
dateTimePicker1.CustomFormat = "MM.yyyy";
dateTimePicker1.Format = DateTimePickerFormat.Custom;
I hope I have understood you now!
I Love T-SQL
"Don't torture yourself,let the life to do it for you."
If my post helps you kindly save my time by voting my post.
www.aktualiteti.com
|
|
|
|
|
|
Hi,
Will be solution for you if you set property ShowUpDown=true of dateTimePicker ?
I Love T-SQL
"Don't torture yourself,let the life to do it for you."
If my post helps you kindly save my time by voting my post.
www.aktualiteti.com
|
|
|
|
|
Not exactly what i had in mind, but it is still better. Maybe i woud need to look for custom control
|
|
|
|
|
Why not create your own user control with 2 comboboxes on it? The first combobox will have the months, the 2nd will have the year values.
|
|
|
|
|
The only thing i have ask is if I can modify calendar that pops up after clicking on the DateTimePicker. I Wanted that callendar to display Month instead days. If you click the month, callendar would "zoom out". I wanted that view for that callendar
|
|
|
|
|
Hi,
Is the following grid layout possible with DataGridView in VB.net? Kind of similiar to html table layout. I'm adding data cell in one row. However I'm not sure on how to get the split row in data grid row.
|
|
|
|
|
Try this :
SourceGrid[^]
Abhijit Jana | Codeproject MVP
Web Site : abhijitjana.net
Don't forget to click "Good Answer" on the post(s) that helped you.
|
|
|
|
|
try to get the selected index from the grid view:
int i = DataGridView .SelectedIndex;
int UserId = int.Parse(DataGridView.Rows[i].Cells[1].Text);
|
|
|
|
|
OP wants to merge and split cells of the DataGridView.
50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!
|
|
|
|
|
sususan wrote: Is the following grid layout possible with DataGridView in VB.net?
Wrong forum. Anyways, this does not have anything to do with C# or VB.Net.
DataGridView does not supports it. Either use third party grids or Paint the DataGridView yourself.
50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!
|
|
|
|
|
I got this working using a simple little (and ugly) hack
In the code below you will need to substitute (or implement) the three methods:
bool InsideMergedRowOfCells(e.ColumnIndex, e.RowIndex)
bool IsFirstOfMergedRowOfCells(e.ColumnIndex, e.RowIndex)
bool IsLastOfMergedRowOfCells(e.ColumnIndex, e.RowIndex)
They should be self explanatory.
The entire code snippet is taken from my handler of the CellPainting event for the grid (DataGridView). It depends utterly on a couple of things (and is therefore what I'd call a nasty hack): 1. It relies on the cells being painted in a set order, i.e. row by row from top to bottom, starting with the top-leftmost cell, and 2. It depends on the DataGridViewCellPaintingEventArgs's private "cellBounds" field to have that exact name. It's a read only (normally) but I am accessing and setting it via reflection.
This works, for now at least, but you need to handle some invalidating of the other cells (those not being repainted). It can be refined and improved, and I'll leave that up to the reader.
Anyway, here's the code
private Rectangle accumulatedMerge = Rectangle.Empty;
private void grid_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (!InsideMergedRowOfCells(e.ColumnIndex, e.RowIndex)) return;
if (IsFirstOfMergedRowOfCells(e.ColumnIndex, e.RowIndex))
{
accumulatedMerge = e.CellBounds;
e.Handled = true;
return;
}
if (IsLastOfMergedRowOfCells(e.ColumnIndex, e.RowIndex))
{
accumulatedMerge.Width = (e.CellBounds.X + e.CellBounds.Width) - _accumulatedMerge.X;
FieldInfo cellBoundsField = e.GetType().GetField("cellBounds", BindingFlags.NonPublic | BindingFlags.Instance);
cellBoundsField.SetValue(e, accumulatedMerge);
e.Paint(accumulatedMerge, DataGridViewPaintParts.All);
}
e.Handled = true;
}
Cheers
Søren L. Fog
http://sugarsoft.com
|
|
|
|
|
Thanks for posting whatever you got working.
The funniest thing about this particular signature is that by the time you realise it doesn't say anything it's too late to stop reading it.
My latest tip/trick
Visit the Hindi forum here.
|
|
|
|
|
Hi All !
I imported an excel file in a datagridview and then Filter it by ... , then I save as it in any my computer , when want to the save in another computer , I Recieve this Error :
Old Format or Invalid Type library(Exception from HRESULT:0x80028018...
Here in my code :
...
Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();
ExcelApp.Application.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel.Workbook excelBook = ExcelApp.Workbooks.Add(XlSheetType.xlWorksheet);
Microsoft.Office.Interop.Excel.Worksheet excelWorksheet = (Worksheet)(excelBook.Worksheets[1]);
excelWorksheet.DisplayRightToLeft = true;
...
Thank u for any help
s_mostafa_h
|
|
|
|