|
The printer settings probably do not match the "label size".
This has nothing to do with C#.
|
|
|
|
|
Member 11166318 wrote: in asp.net
Bear in mind that if you're printing from C#, that happens on the server. If you're expecting the label to appear on the user's printer, then you're going to be disappointed.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Is there an easy way to bind a combobox to populate with the names of the tables in a given dataset? When I search all I am finding are questions and examples of binding to a datatable, not the names of the tables in a dataset.
I was hoping for something similar to when debugging in Visual Studio and you have a watch on a dataset. When you examine the value, you get a dropdown with the table names, and switching will show you the data table in a datagrid view.
I currently clear the items from the combobox, and iterate through the table names adding them to the combobox. When the combobox changes I then set my datamember of my grid view to be dataset[combobox1.SelectedItem.ToString], which works but feels clunky.
My application will be using different typed datasets so I need to be able to change the combobox when the dataset changes.
|
|
|
|
|
You wanted an "easy way"; not sure if this qualifies:
foreach( DataTable table in _ds.Tables ) {
this.comboBox1.Items.Add( table.TableName );
}
|
|
|
|
|
hi all,
i have an windows form with some TextBox and a Picutre box.
i want to draw its value in a image in a report format.
how can i do this.
how can i decide the size of image.
how can i draw line by line with all textbox values.
please help me for this.
thanks in advance.
|
|
|
|
|
You need to explain in rather more detail what you are trying to do - drawing onto an Image is pretty trivial, all you have to do is get a Graphics context for the image and call the appropriate methods from the class: Graphics Class (System.Drawing)[^]
There is background here: Drawing Text and Graphics[^] - it all talks about a Form, but the principles and even the methdos are the same once you get the Graphics object for your Image.
But we don't know exactly what part of this is giving you problems - remember that we can't see your screen, access your HDD, or read your mind: we only get exactly what you type to work from. So you need to explain in enough detail that we can "fill in the gaps" without having the context from your project!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Rectangle rect_ctrl = panel_controls.Bounds;
image_rect = new Rectangle(0, 0, rect_ctrl.Width, rect_ctrl.Height);
drawing_point = new Point(50, 0);
str_rect = new Rectangle(0, drawing_point.Y, image_rect.Width, drawing_point.Y + 50);
int color = Screen.PrimaryScreen.BitsPerPixel;
PixelFormat pf;
pf = PixelFormat.Format32bppArgb;
Bitmap BM = new Bitmap(image_rect.Width, image_rect.Height, pf);
Graphics g = Graphics.FromImage(BM);
g.DrawImage(Photo_LB.Image, rect_pic);
and
draw string for all text control
than
g.Dispose();
ImageFormat My_Image_Format = ImageFormat.Jpeg;
BM.Save(Application.StartupPath+"\\test.jpg");
here i set size of image as panel size, but if text is more in text box full text not visible in image how can i sent image size for this.
|
|
|
|
|
Well - without seeing your DrawString calls, it's not possible to be accurate, but...
If your problem is that text is not fitting then there are only two things you can do:
1) Use the bounding rectangle to allow the text to use more than one line - you are probably doing this already.
2) If multiline text just doesn't fit, then you need to reduce the font size to fit your text in there. That's complicated, because there isn't a "fit text to rectangle"function in .NET. What you will have to do is use Graphics.MeasureString to work out how much space the string needs at a particular size, and resize the font to fit. MSDN does have a basic example: Dynamic Graphic Text Resizing[^] but you will probably need to work on it quite a bit to get exactly what you are looking for.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
g.DrawString(value, heading_font, C_Brush, str_rect, SF_TEXT);
|
|
|
|
|
So you have a small area to hold the string: 50 pixels high is about enough for two lines at a "normal" font size, but "heading_font" implies it's bigger than that, so at a guess one line.
Use MeasureString to check your string dimensions and consider looking at the MSDN method to see if you can "squash" the font down enough to fit it in.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
|
You're welcome!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
g.DrawString(value, heading_font, C_Brush, str_rect, SF_TEXT);
|
|
|
|
|
I'm sorry but your post doesn't make much sense. There are too many areas that we could be making assumptions about here. Are you saying that you want to take a screenshot of the form and put it in a report? Is it a case that you want to post the values from the text boxes and the image and put them line by line in a report? Are you using report writing software? What exactly do you mean by a report? Are you including headers and footers? Do you expect this to be multipage? Are the number of text boxes and images fixed? Where do the images come from? Are they cropped/resized, or are the images scrollable?
This space for rent
|
|
|
|
|
I am stumped as to why the below C# code isn't returning any rows from my database
conn = new System.Data.SqlClient.SqlConnection("Data Source=" + sSessionServer + ";database=" + sSessionDatabase + "; Integrated Security=SSPI");
String SQL = "[q_CheckOOSWarehouse80ItemsNeedingNotification]";
cmd = new SqlCommand();
cmd.CommandText = SQL;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Connection = conn;
var myparams = new SqlParameter("@ItemsIDS", DbType.String);
myparams.Direction = ParameterDirection.Input;
myparams.Size = 40;
myparams.Value = ItemsToBeChecked;
cmd.Parameters.Add(myparams);
conn.Open();
myReader = cmd.ExecuteReader();
if (myReader.HasRows)
{
while (myReader.Read())
My stored procedure looks like this:
ALTER PROCEDURE [dbo].[q_CheckOOSWarehouse80ItemsNeedingNotification]@ItemsIDS AS VARCHAR(40)
AS
BEGIN
SET NOCOUNT ON
select * from q_Warehouse80_OOS_ItemsNeedingNotification where item_id = @ItemsIDS
END
The parameters I am using when calling the SP from my C# program are these:
SQL = "[q_CheckOOSWarehouse80ItemsNeedingNotification]"
ItemsToBeChecked = 'B30-244-595-CB-B001'
The SP doesn't return any records when I call it from my C# program, but if I use the above parameters from within a SSMS Query I get the results I expect.
If I were to remove the where clause of my SP I get records returned when the call is done from within my C# program, so it appears the issue with the parameter being passed to the SP.
Does anyone have any suggestions as to how to resolve this issue ?
Thank you in advance for your help.
|
|
|
|
|
First, take the square brackets off your stored proc name in the C# code.
Second, put a try/catch block in your c# method so you can see what exception is being thrown. That will tell you exactly what the problem is.
".45 ACP - because shooting twice is just silly" - JSOP, 2010
- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
John,
Thanks for responding to my question.
I'm not getting an error message. The problem is I am not getting any records back.
I previously tried removed the square brackets, but that generated an error that the SP couldn't be found
|
|
|
|
|
Start by checking that you are testing against the same database - it's surprising how often the SSMS check is done against the production DB instead of the development DB which has different data!
Then check that the SP in your Dev DB looks exactly like you think it does.
If all of that looks good, comment out the content of your SP, and replace it with this:
select '-' + item_id + '-', '-' + @ItemsIDS + '-' from q_Warehouse80_OOS_ItemsNeedingNotification where item_id = 'B30-244-595-CB-B001' Then run your C# code again and see exactly what you get back.
If what you say is right, then it should be two identical strings:
-B30-244-595-CB-B001- and -B30-244-595-CB-B001-
But I'm betting it doesn't. Either way, that should isolate roughly where the problem is being caused - and that should give you (and us) at least more to work from.
I'd code it differently:
cmd = new SqlCommand();
cmd.CommandText = SQL;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Connection = conn;
var myparams = new SqlParameter("@ItemsIDS", DbType.String);
myparams.Direction = ParameterDirection.Input;
myparams.Size = 40;
myparams.Value = ItemsToBeChecked;
cmd.Parameters.Add(myparams);
Would become:
cmd = new SqlCommand(SQL, conn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue(@ItemsIDS, ItemsToBeChecked);
It might be worth checking that as well, in case it's a field size mismatch / padding problem.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
I modified my SP as you suggested:
BEGIN
SET NOCOUNT ON
--select * from q_Warehouse80_OOS_ItemsNeedingNotification where item_id = @ItemsIDS
select '-' + item_id + '-' as R1, '-' + @ItemsIDS + '-' as R2 from q_Warehouse80_OOS_ItemsNeedingNotification where item_id = 'B30-244-595-CB-B001'
END
And this is what I get back when I call the SP from my C#:
R1 = "-B30-244-595-CB-B001-"
R2 = "-'B30-244-595-CB-B001'-"
|
|
|
|
|
And if you use the debugger to look at your itemsToBeChecked variable in the C#, you'll find the quotes are part of the string - which means they are part of the parameter you pass to SQL, and that explains why it doesn't match.
Now all you need to do is look at where that comes from and find out why the quotes are there. They're easy to get rid of - .Trim('''') will remove them - but it's better to find out what adds them and stop it doing it!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
I'm embarrassed to say that my C# code was adding the quotes around the argument being passed because a long time ago(I think it was Monday) I wanted the SP to take a list of strings and check to see if any of them matched the item_ids in the view the SP was searching.
Here is how my SP was originally looking before I started messing with it.
@ItemsIDS AS VARCHAR(max)
AS
BEGIN
SET NOCOUNT ON
select item_id from q_Warehouse80_OOS_ItemsNeedingNotification where item_id in(@ItemsIDS)
END
As you can see I am using the in qualifier which requires the arguments being passed in the @ItemsIDS string to be separated by single quotes.
That's why the quotes were in the argument that I was passing to the SP.
So here I am back to square one trying to figure out why the SP doesn't work when I pass (in this case) one argument in the @ItemsIDS variable.
|
|
|
|
|
Ah. That's simple: the IN part of the SP is precompiled - you can't pass it a list of items in a string, because it doesn't get replaced by the parameter list value.
See here: Using comma separated value parameter strings in SQL IN clauses[^] - it may give you a solution.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
With a slight modification this function works just the way I need it to.
Finally !
Thank you for all your help !
|
|
|
|
|
You're welcome!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|